<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[webmail读信替换的代码]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Tue, 13 May 2008 07:26:09 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	ret5 = code_convert(MAIL_CODE_FROM, MAIL_CODE_TO, (char*)(LPCSTR)txtbody, strlen((LPCSTR)txtbody), body_dest, blen);<br/><br/>int code_convert(char *from_charset, char *to_charset,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char *input, int inlen, <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char *output,int outlen)<br/>{<br/><br/>&nbsp;&nbsp;if(!input &#124;&#124; !(*input))<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;return -3;<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;size_t len_in = inlen;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size_t len_out = outlen;<br/>&nbsp;&nbsp;const char *p_in = input;<br/>&nbsp;&nbsp;char *p_out = output;<br/>&nbsp;&nbsp; &nbsp;&nbsp;iconv_t cd;<br/>&nbsp;&nbsp;cd = iconv_open(to_charset,from_charset);<br/>&nbsp;&nbsp;if (cd==0) return -2;<br/>&nbsp;&nbsp;memset(output,0,outlen);<br/>&nbsp;&nbsp;if (iconv(cd, &amp;p_in, &amp;len_in, &amp;p_out, &amp;len_out)==-1) return -1;<br/>&nbsp;&nbsp;iconv_close(cd);<br/>&nbsp;&nbsp;return 0; &nbsp;&nbsp;&nbsp;&nbsp;<br/>}<br/><br/>&nbsp;&nbsp;<br/>void CSinaMail::DirectReadMsg(LPCSTR para,LPCSTR cgi_url,CStr&amp; msg,CStr&amp; from,CStr&amp; to,CStr&amp; date,CStr&amp; cc,CStr&amp; subject,CStr&amp; txtbody,CStr&amp; msgbody,CStr&amp; reply, int msgbody_inc_attach) {<br/>&nbsp;&nbsp;CStr abmsg,charset,body,mime,tmp,htmlbody,base,link;<br/>&nbsp;&nbsp;int charsetLen = 0;<br/>&nbsp;&nbsp;//get mail file absolute path<br/>&nbsp;&nbsp;AbMsg(abmsg,(LPCSTR)msg);<br/>&nbsp;&nbsp;if(!IsDir(m_mimedir)) mkdir(m_mimedir,0700);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMimeMail mimeMail;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LPCSTR lpFileName=mimeMail.OpenFile((LPCSTR)abmsg);<br/>&nbsp;&nbsp; &nbsp;&nbsp;CAttachmentList attachmentList;<br/>&nbsp;&nbsp;mimeMail.ReadMail((LPSTR)lpFileName, body, attachmentList);<br/>&nbsp;&nbsp;HandleAttachmenList(attachmentList,para,cgi_url,m_mimedir);<br/>&nbsp;&nbsp;if(!body.IsEmpty()) {<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;charset.MidStr((LPCSTR)body,0,&quot;&#92;n&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;txtbody.MidStr((LPCSTR)body,&quot;&#92;n&quot;,0);<br/>&nbsp;&nbsp;&nbsp;&nbsp;charsetLen = strlen((LPCSTR)charset);<br/>&nbsp;&nbsp;&nbsp;&nbsp;MsgTxtContentToHtml(cgi_url,para,(LPCSTR)txtbody,msgbody);<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;if(!msgbody.IsEmpty())<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;msgbody.ReplaceAll(&quot;&amp;lt;&quot;, &quot;&lt;&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;msgbody.ReplaceAll(&quot;&amp;gt;&quot;, &quot;&gt;&quot;);<br/><br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;CAttachment* pAtt;<br/>&nbsp;&nbsp;int num=attachmentList.GetCount();<br/><br/>&nbsp;&nbsp;for(int i=0;i&lt;num;i++) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;pAtt=attachmentList.GetItem(i);<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (pAtt-&gt;m_nDisplayOrNot==0) continue; //if not need display<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (pAtt-&gt;m_nDisplayOrNot==2 &amp;&amp; msgbody==&quot;&quot;) { //if is html content<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mime.Format(&quot;%s/%s&quot;,(LPCSTR)m_mimedir,(LPCSTR)pAtt-&gt;m_cstrFileName);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;CTmpl htmlfile((LPCSTR)mime);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;htmlbody=&quot;&lt;pre&gt;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;htmlbody=htmlbody + (CStr)htmlfile;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;htmlbody=htmlbody + &quot;&lt;/pre&gt;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base.MidStrI((LPCSTR)htmlbody,&quot;&lt;BASE&quot;,&quot;&gt;&quot;,1);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LPCSTR body=htmlbody.FindI(&quot;&lt;HTML&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(body) body=strchr(body,&#039;&gt;&#039;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(body) htmlbody=body+1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;htmlbody.ReplaceI(&quot;&lt;body&quot;,&quot;&lt;xbody&quot;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;htmlbody.ReplaceIAll(&quot;&lt;/BODY&gt;&quot;,&quot;&lt;/xbody&gt;&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;htmlbody.ReplaceIAll(&quot;&lt;/HTML&gt;&quot;,&quot;&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;htmlbody.ReplaceIAll(&quot;&lt;SCRIPT&quot;,&quot;&lt;COMMENT&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;htmlbody.ReplaceIAll(&quot;&lt;/SCRIPT&gt;&quot;,&quot;&lt;/COMMENT&gt;&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(pAtt-&gt;m_nCharSet==HZ_CODE) CheckForHZString(htmlbody);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (txtbody.IsEmpty())<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;txtbody=htmlbody;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char* des=(char*)calloc(1,txtbody.GetLength());<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parsetext(des,(char*)(LPCSTR)txtbody);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;txtbody=des;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;free(des);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 4. add div<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//add by liulei, output base_mark in mail content<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msgbody+=&quot;&lt;DIV&gt;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!base.IsEmpty()) { // include base<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msgbody+=&quot;&lt;base&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msgbody+=base;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msgbody+=&quot;&gt;&quot;; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msgbody+=htmlbody;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msgbody+=&quot;&lt;/DIV&gt;&quot;;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msgbody+=&quot;&lt;BASE href=&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msgbody+=cgi_url;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msgbody+=&quot;&gt;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msgbody+=htmlbody;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msgbody+=&quot;&lt;/DIV&gt;&quot;;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//add end<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CStr strFujian;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strFujian = &quot;附件&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;toLink((LPCSTR)pAtt-&gt;m_cstrFileName,link);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CStr fit_displayName(pAtt-&gt;m_lpszDisplayName);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repBadchar(fit_displayName);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CStr displayName;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;toLink(fit_displayName, displayName);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//2005-11-5 add by zhirui 过滤无效的类型<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CStr tmpStr1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CStrList tmpList1;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(pAtt-&gt;m_lpszType.FindI(&quot;application/&quot;) &amp;&amp; pAtt-&gt;m_lpszType.FindI(&quot;name=&quot;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pAtt-&gt;m_lpszType.ReplaceAll(&quot; &quot;, &quot;&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pAtt-&gt;m_lpszType.Split(&quot;name=&quot;, tmpList1);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(tmpList1.GetCount() == 2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pAtt-&gt;m_lpszType.Format(&quot;%s&quot;, (LPCSTR)*tmpList1.GetItem(0));<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//pAtt-&gt;m_lpszType.ReplaceAll((LPCSTR)pAtt-&gt;m_lpszType, &quot;application/vnd.ms-excel&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(pAtt-&gt;m_lpszType.FindI(&quot;vnd.ms-excelname=&quot;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pAtt-&gt;m_lpszType.ReplaceAll((LPCSTR)pAtt-&gt;m_lpszType, &quot;application/vnd.ms-excel&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(pAtt-&gt;m_lpszType.FindI(&quot;x-excelname=&quot;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pAtt-&gt;m_lpszType.ReplaceAll((LPCSTR)pAtt-&gt;m_lpszType, &quot;application/x-excel&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(pAtt-&gt;m_lpszType.FindI(&quot;mswordname=&quot;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pAtt-&gt;m_lpszType.ReplaceAll((LPCSTR)pAtt-&gt;m_lpszType, &quot;application/msword&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//changed by zhirui 2005-10-11<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(msgbody_inc_attach == 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tmp.Format(&quot;&lt;BR&gt;&lt;BR&gt;&#92;n--------------------------------------------------&lt;BR&gt;&#92;n%s:&lt;a href=&#039;/cgi-bin/email/webmailbox/attachment.cgi/%s/%s/%s/%s/%s&#039;&gt;%s&lt;/a&gt;(%s, %ld bytes) &lt;BR&gt;&#92;n--------------------------------------------------&lt;BR&gt;&#92;n&quot;, (LPCSTR)strFujian, para, (LPCSTR)pAtt-&gt;m_lpszType, (LPCSTR)link, (LPCSTR)displayName, (LPCSTR)displayName, (LPCSTR)pAtt-&gt;m_lpszDisplayName, (LPCSTR)pAtt-&gt;m_lpszType,pAtt-&gt;m_nFileSize);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msgbody += tmp;<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;if(charsetLen &gt; 30)<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;charset.Empty();<br/>&nbsp;&nbsp;&nbsp;&nbsp;charset.Format(&quot;%s&quot;, &quot;gb2312&quot;);<br/>&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;//+20080124 add get msgId from mail head<br/>&nbsp;&nbsp;mimeMail.GetHeader(&quot;Message-ID&quot;, this-&gt;msgIdStr,(LPCSTR)charset);<br/>&nbsp;&nbsp;mimeMail.GetHeader(&quot;X-Mailer&quot;, this-&gt;xMailerStr,(LPCSTR)charset);<br/><br/>&nbsp;&nbsp;mimeMail.GetHeader(&quot;from&quot;,from,(LPCSTR)charset);<br/>&nbsp;&nbsp;mimeMail.GetHeader(&quot;to&quot;,to,(LPCSTR)charset);<br/>&nbsp;&nbsp;mimeMail.GetHeader(&quot;subject&quot;,subject,(LPCSTR)charset);<br/>&nbsp;&nbsp;mimeMail.GetHeader(&quot;cc&quot;,cc,(LPCSTR)charset);<br/>&nbsp;&nbsp;mimeMail.GetHeader(&quot;date&quot;,date,(LPCSTR)charset);<br/><br/>&nbsp;&nbsp;GetStandardTime(8,date);<br/>&nbsp;&nbsp;mimeMail.GetHeader(&quot;disposition-notification-to&quot;,reply,(LPCSTR)charset);<br/>&nbsp;&nbsp;if(reply.IsEmpty())<br/>&nbsp;&nbsp;&nbsp;&nbsp;mimeMail.GetHeader(&quot;Return-Receipt-To&quot;,reply,(LPCSTR)charset);<br/>}<br/>&nbsp;&nbsp;
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] webmail读信替换的代码]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>