扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:王凯明 来源:yesky 2007年11月14日
关键字:
/// /// 接收邮件信息 /// public void ReceiveMessage() { // 避免线程冲突 lock(this) { // 设置初始连接 con = new Pop3Connection(); if(port <= 0) port = 110; con.Open(host, port); StringBuilder buf = new StringBuilder(); string response; int code; // 获取欢迎信息 con.GetReply(out response, out code); status += response; //登录服务器过程 buf.Append("USER"); buf.Append(username); buf.Append(CRLF); con.SendCommand(buf.ToString()); con.GetReply(out response, out code); status += response; buf.Length = 0; buf.Append("PASS"); buf.Append(password); buf.Append(CRLF); con.SendCommand(buf.ToString()); con.GetReply(out response, out code); status += response; //向服务器发送STAT命令,从而取得邮箱的相关信息:邮件数量和大小 buf.Length = 0; buf.Append("STAT"); buf.Append(CRLF); con.SendCommand(buf.ToString()); con.GetReply(out response, out code); status += response; //将总邮件数和邮件大小分离 string[] TotalStat = response.Split(new char[] {' '}); numofmails = Int32.Parse(TotalStat[1]); totalsize = (double)Int32.Parse(TotalStat[2]); for( int x = 0; x < numofmails; ++x) { //根据邮件编号从服务器获得相应邮件 buf.Length = 0; buf.Append("RETR"); buf.Append(x.ToString()); buf.Append(CRLF); con.SendCommand(buf.ToString()); con.GetReply(out response, out code); if(response[0]!='-') { //不断地读取邮件内容,只到结束标志:英文句号 while(response!=".") { body += response; con.GetReply(out response, out code); } } else status += response; } //向服务器发送QUIT命令从而结束和POP3服务器的会话 buf.Length = 0; buf.Append("QUIT"); buf.Append(CRLF); con.SendCommand(buf.ToString()); con.GetReply(out response, out code); status += response; con.Close(); // 邮件接收成功后触发的事件 if(OnMailReceived != null) { OnMailReceived(); } } } |
/// /// 通过一个独立的线程接收邮件 /// public void ReceiveMessageAsync() { new Thread(new ThreadStart(ReceiveMessage)).Start(); } |
public delegate void MailReceivedDelegate(); |
public event MailReceivedDelegate OnMailReceived; |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者