LumiSoft.Net提供了丰富的网络开发组件,下载地址:
http://www.lumisoft.ee/lswww/download/downloads/Net/
解压缩后找到引用bin/Release/LumiSoft.Net.dll
打开命名空间
using LumiSoft.Net.Mime;
using LumiSoft.Net.POP3.Client;
范例代码
配合科来网络分析器(注意刷新),观察网络数据包
using(...){}的使用保证了}后会交互一个QUIT指令,相当于调用了一次Disconnect()
c.Connect(..)登录MialSrv并交互一个CAPA,tom的服务器并不识别该指令
c.Authenticate(...)与MailSrv交互如下指令
USER user
PASS pass
LIST
UIDL
c.Messages[0].MessageToByte()与MailSrv交互 RETR 1 (MailID是以1开始)
而如果是c.Messages[0].HeaderToString()与Mail交互 Top 1, 0
如果重复调用c.Message[0].xxxToString()则相因指令也重复交互
如果在c.Authenticate(...)成功后Thread.Sleep(...)一段时间(根据MailSrv而定)再调用c.Message[0].xxxToString()会触发异常,因为这时候与MailSrv的Tcp连接已被MailSrv自动断开(没有QUIT)。
POP3_Client的实例的一个特性似乎也说明了这一点:
在第二次调用Authenticate时会触发异常,提示"Session is already authenticated"
POP3_Client的很多方法都没有返回值,比如Connect(...)和Authenticate(...),要处理MailSrv连接失败会认证失败需要使用try{...}catch(...){...}来捕获异常
POP3_Client的相关方法都具有异步版本Beginxxx(...)和Endxxx(....)
开发参考:
通过第三方控件收邮件(LumiSoft.Net.POP3.Client)
http://www.cnblogs.com/nina-piaoye/archive/2008/07/07/1237571.html
一个比较通用的MIME解析器
http://www.cnblogs.com/elliotta/archive/2009/06/10/1500197.html
关于LumiSoft.Net.POP3.Client接收邮件例子(包括附件)
http://www.cnblogs.com/xiongeee/archive/2009/07/06/1517693.html
对MIME格式的邮件文件进行解码获取其可读内容和附件等
http://www.cnblogs.com/ricky81317/archive/2007/10/19/929298.html
.Net Pop3接收邮件(修正LumiSoft.Net.Pop3的邮件头乱码问题)
http://www.zu14.cn/2008/12/28/net_pop3_revise/