Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->网络应用 ->邮件服务器 ->正文

自制Pop3邮件接收系统(一):利用MatchEvaluator实现

来源:Linuxdby.com 作者:Webmaster 时间:2007-05-31 点击: [收藏] [投稿]

要作自制的Pop3邮件接收系统,就要自己处理邮件的编码

大家可能会收到以下的“乱码”,
~{4s

实际上是简体中文的HZ编码,在邮件中经常会出现,

因为邮件协议体系通常是七位的,而汉字却是双字节的

所以就使用以下的方法对其进行解码

String hzDecode(Match m){
String tmp=m.ToString();
byte[] ret=new byte[tmp.Length-4];
for(int i=0;i ret[i]=(byte)(tmp[i+2]+128);
return Encoding.GetEncoding(936).GetString(ret);
}


使用范例:
string strHz="~{4s strHz=Regex.Replace(strHz,@"~{(.+?)~}",new MatchEvaluator(hzDecode));
Response.Write(" HZ Decode="+strHz);


随便带上编码的代码(可用来发送邮件用)

String hzEncode(Match m){
byte[] tmp=Encoding.GetEncoding(936).GetBytes(m.ToString());
StringBuilder ret=new StringBuilder("~{");
for(int i=0;i ret.Append((char)(tmp[i]-128));
ret.Append("~}");
return ret.ToString();
}

使用范例:
string strHz="大家好,我是qiushuiwuhen,欢迎来到csdn.";
strHz=Regex.Replace(strHz,@"[^x00-xff]+",new MatchEvaluator(hzEncode));
Response.Write("

HZ Encode="+strHz);</P><P>原理:使用MatchEvaluator的回调(CallBack)函数执行Regex的替换操作</P>, </font></span> <br /> <br /> <center> <strong> &nbsp;<font color="#0000FF">如果您对本文有任何疑问或者建议,请到讨论区发表您的意见:</font> </strong><a href="http://bbs.linux-cn.com" target="_blank"><strong><font color="#FF0000">&gt;&gt; 论坛入口 &lt;&lt;</font></strong></a> <br> <br> <div class="articlepages"></div> </center><br /><br /> 上一篇:<a href='/html/network/mail/20070531/44917.html'>.NET环境下几种不同的邮件发送解决方案</a> &nbsp; 下一篇:<a href='/html/network/mail/20070531/44919.html'>自制Pop3邮件接收系统(二):利用TcpClient得到Pop3的邮件列表数据</a> <br /><br /> <center> 【<a href="/plus/feedback.php?arcID=44918" title="文章评论" target="_blank">文章评论</a>】 【<a href="javascript:window.external.addFavorite('http://www.linux-cn.com/plus/view.php?aid=44918','自制Pop3邮件接收系统(一):利用MatchEvaluator实现|Linux中国')" title="收藏本文" target="_blank">收藏本文</a>】 【<a href="/plus/recommend.php?arcID=44918" title="推荐好友" target="_blank">推荐好友</a>】 【<a href="javascript:window.print();" title="打印本文" target="_self">打印本文</a>】 【<a href="/member/article_add.php" target="_blank">我要投稿</a>】 【<a href="http://bbs.linux-cn.com" target="_blank">论坛讨论</a>】</center> </div> </div> <!-- end of articlearea --> <div class="articleadtop728"><script src='/plus/ad_js.php?aid=23' language='javascript'></script></div> <div class="title">更多相关文章</div> <div class="relativearticle">·<a href='/html/network/mail/20070531/45028.html'>SQL Server怎样配置发送电子邮件</a></div><div class="relativearticle">·<a href='/html/network/mail/20070531/45027.html'>如何设置sql server中的email</a></div><div class="relativearticle">·<a href='/html/network/mail/20070531/45026.html'>新手入门:企业邮箱及邮件服务器架设</a></div><div class="relativearticle">·<a href='/html/network/mail/20070531/45025.html'>局域网内部邮件服务器架设指南</a></div><div class="relativearticle">·<a href='/html/network/mail/20070531/45024.html'>Email软件的选择</a></div><div class="relativearticle">·<a href='/html/network/mail/20070531/45023.html'>如何管理NETSCAPE 邮件服务器</a></div><div class="relativearticle">·<a href='/html/network/mail/20070531/45022.html'>中软Linux邮件系统解决方案</a></div><div class="relativearticle">·<a href='/html/network/mail/20070531/45021.html'>SQLMail的原理及实际应用</a></div><div class="relativearticle">·<a href='/html/network/mail/20070531/45020.html'>Kerio Mail Server 搭配 ClamAV杀毒引擎</a></div><div class="relativearticle">·<a href='/html/network/mail/20070531/45019.html'>Netscape Messaging Server 的使用</a></div> </div> </td> <td class="channelright"> <div class="rightad250_250"> <script src='/plus/ad_js.php?aid=19' language='javascript'></script> </div> <div class="suggestarticles"> <div class="title">推荐文章</div> <div class="suggestarticlestitle">·<a href='/html/network/mail/20070531/44845.html'>iPlanet Messaging Server 安装图解</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/exchange/20070528/44398.html'>精简访问Exchange服务器的URL</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/exchange/20070528/44175.html'>创建一个MOM的测试Exchange信箱</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/20070425/13355.html'>邮件发送失败之后路由器的工作机制 </a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/qmail/20070528/43635.html'>构筑我的电子邮局(下)-QMail篇</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/20070531/45028.html'>SQL Server怎样配置发送电子邮件</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/mdaemon/20070528/43847.html'>企业邮局架设一点通 MDaemon Server</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/exchange/20070528/44283.html'>Live Communications Server 2003 </a></div> </div> <div class="rightad250_300"> <script src='/plus/ad_js.php?aid=20' language='javascript'></script> </div> <div class="randsuggest"> <div class="title">精彩文章</div> <div class="suggestarticlestitle">·<a href='/html/network/mail/exchange/20070528/44189.html'>如何以编程方式获得 Exchange 中邮</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/imail/20070528/43782.html'>Imail的迁移与群件</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/mdaemon/20070528/43865.html'>用ASP检查MDaemon系统管理员登录</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/mdaemon/20070528/43831.html'>MDaemon 如何实现对邮局系统收发的</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/exchange/20070528/44436.html'>Exchange 2003 SP2更新启用自定义权</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/mdaemon/20070528/43869.html'>MDaemon全新安装升级总结</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/exchange/20070528/44081.html'>Exchange 2000 Server 常见问题(五)</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/20070531/44836.html'>企业邮件服务器软件介绍(国产)</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/20070531/44997.html'>如何能让Webmail运行在IIS/PWS环境</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/exchange/20070528/44123.html'>Exchange Server管理与设定(一)</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/20070531/45005.html'>完全架设MuseMail Server指南</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/exchange/20070528/44108.html'>如何在OWA中修改密码</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/20070531/45001.html'>使用Magic Winmail Server轻松架设</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/imail/20070528/43810.html'>IMail的入门篇--第三节 建立可用</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/exchange/20070528/44423.html'>如何在 Exchange 2003 中限制可以向</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/20070531/44877.html'>Apache James使用入门</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/exchange/20070528/44031.html'>如何做好Exchange 2003 Server环境</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/20070531/44930.html'>通过exim建立家庭网络的邮件系统</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/exchange/20070528/44103.html'>Exchange 2000 Server 常见问题(二)</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/exchange/20070528/44224.html'>如何在Exchange 2000 Server中保证</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/exchange/20070528/44514.html'>调整Exchange 2003的DSA缓存</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/exchange/20070528/43965.html'>Exchange备份与恢复小结</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/20070531/44917.html'>.NET环境下几种不同的邮件发送解决</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/exchange/20070528/44188.html'>通过防火墙建立Exchange 2000 Windo</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/exchange/20070528/44460.html'>面向Exchange管理员的群集诊断和验</a></div><div class="suggestarticlestitle">·<a href='/html/network/mail/qmail/20070528/43354.html'>FreeBSD下E-mail服务搭建</a></div> </div> </td> </tr> </table> <div class="bottomnav bigwidthwithborder"> <script type="text/javascript" language="javascript" src="/linuxcn/js/bottomnav.js"></script> </div> <div class="bottomcopyright bigwidth"> <a href='http://www.linux-cn.com' target='_blank'>Power by linux-cn.com</a> <a href="http://www.miibeian.gov.cn" target="_blank">粤ICP备05006655号</a>&nbsp;<script language="javascript" type="text/javascript" src="/linuxcn/js/allbottom.js"></script> </div> </body> </html>