POP3Clientpop3Client类实现pop3协议中的九种基本方法(私有):DELE, LIST, NOOP, PASS, QUIT, RETR, RSET, STAT
并通过这九种基本方法实现以下功能:
1,连接邮箱(建立一个tcp连接:端口一般为110,可另行指定)
2,得到邮箱里的总邮件数
3,列出邮件列表(邮件ID,主题)
4,下载一封邮件
5,删除一封邮件
6,取消删除邮件操作
7,断开邮箱连接pop3Client类还维护一个pop3邮箱连接的状态(四种状态),pop3的九种方法都必须在相应该的状态下才能执行
1,断开状态(Disconnect):在没有连接邮箱时都视为断开状态
2,验证状态(AUTHORIZATION):在没执行成功PASS之前,连接邮箱之后,均为验证状态
3,会话状态(TRANSACTION):LIST,STAT,RETR
4,更新状态(UPDATE):DELEPOP3基本方法的执行流程:
1,检查该命令载当前的POP状态中是否有效。
2,如果有效,发送命令到服务器。
3,读取响应结果。
4,(如果需要)改变POP状态。POP3操作成功判断
当返回字符串中第一个字符为"+",则为成功,为"-",则失败pop3命令(每个命令以CRLF:"\r\n"结束,以下每行命令和返回有换行均视为CRLF)
1,USER
格式: USER username
响应:
成功: +OK .....
失败: -ERR ....
功能:指定邮箱的用户名
2,PASS
格式: PASS password
响应:
成功: +OK .....
失败: -ERR ....
功能:口令
3,NOOP
格式: NOOP
响应:
成功: +OK
功能:测试服务器是否能响应
格式: USER username
4,STAT
格式: STAT
响应:
成功: +OK: nn mm
功能:得到邮件数nn和总大小mm
5,LIST
格式:LIST
响应:
成功:+OK id size
id size
.
失败:ERR
功能:列出每封邮件的大小(size)和序号(ID)
6,RETR
格式 RETR ID
响应:
成功:+OK 邮件体..
失败:ERR
功能:收取一封邮件(根据序号ID)
7,DELE
格式:DELE ID
响应:
成功:+OK
失败:-ERR
功能:删除一封邮件(根据序号ID)
8,RESET
格式:RESET
响应:
成功:+OK
失败:-ERR
功能:恢复删除
9,QUIT
格式:QUIT
响应:
成功:+OK
并通过这九种基本方法实现以下功能:
1,连接邮箱(建立一个tcp连接:端口一般为110,可另行指定)
2,得到邮箱里的总邮件数
3,列出邮件列表(邮件ID,主题)
4,下载一封邮件
5,删除一封邮件
6,取消删除邮件操作
7,断开邮箱连接pop3Client类还维护一个pop3邮箱连接的状态(四种状态),pop3的九种方法都必须在相应该的状态下才能执行
1,断开状态(Disconnect):在没有连接邮箱时都视为断开状态
2,验证状态(AUTHORIZATION):在没执行成功PASS之前,连接邮箱之后,均为验证状态
3,会话状态(TRANSACTION):LIST,STAT,RETR
4,更新状态(UPDATE):DELEPOP3基本方法的执行流程:
1,检查该命令载当前的POP状态中是否有效。
2,如果有效,发送命令到服务器。
3,读取响应结果。
4,(如果需要)改变POP状态。POP3操作成功判断
当返回字符串中第一个字符为"+",则为成功,为"-",则失败pop3命令(每个命令以CRLF:"\r\n"结束,以下每行命令和返回有换行均视为CRLF)
1,USER
格式: USER username
响应:
成功: +OK .....
失败: -ERR ....
功能:指定邮箱的用户名
2,PASS
格式: PASS password
响应:
成功: +OK .....
失败: -ERR ....
功能:口令
3,NOOP
格式: NOOP
响应:
成功: +OK
功能:测试服务器是否能响应
格式: USER username
4,STAT
格式: STAT
响应:
成功: +OK: nn mm
功能:得到邮件数nn和总大小mm
5,LIST
格式:LIST
响应:
成功:+OK id size
id size
.
失败:ERR
功能:列出每封邮件的大小(size)和序号(ID)
6,RETR
格式 RETR ID
响应:
成功:+OK 邮件体..
失败:ERR
功能:收取一封邮件(根据序号ID)
7,DELE
格式:DELE ID
响应:
成功:+OK
失败:-ERR
功能:删除一封邮件(根据序号ID)
8,RESET
格式:RESET
响应:
成功:+OK
失败:-ERR
功能:恢复删除
9,QUIT
格式:QUIT
响应:
成功:+OK
解决方案 »
- 弹出打印属性后怎么保存设置呢?
- 急!请高手帮忙,序列化数组问题,
- 广州地区的CSDN程序员聚会
- 求上海(或周边比较近)高手做过类似项目一块做项目
- foreach运用
- 在Winform程序,点击窗口的X和左上角菜单的关闭好象是释放窗体,但我想隐藏这个窗体怎么办?
- 求助:经常出现的.NET编译错误的原因是什么
- 急求C#中第三方控件的问题!
- 如何把垂直滚动条绑定在LISTVIEW的控件中,LISTVIEW本身滚动条FALSE!
- 关于套接字编程的改进,我这个只能交互一次,还有服务器无法理解客户端的私自离开,我做了好多天,新手弄不懂,麻烦懂得改进一下,谢谢谢谢。
- 请问C#中这是什么意思?
- 是否C#做的程序编译成的EXE文件必须在有.NET框夹的环境中运行?
public StreamReader RdStrm;
public string Data;
public byte[] szData;
public string CRLF = "\r\n";
if (File.Exists("MyMail.eml"))
{
Console.WriteLine("{0} already exists.", "MyMail.eml");
return;
}
StreamWriter sr = File.CreateText("MyMail.eml");string szTemp;
try
{
Data = "RETR " + “第几封邮件”+ CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData,0,szData.Length); szTemp = RdStrm.ReadLine();
if(szTemp[0]!='-')
{
while(szTemp!=".")
{
// 写进文件
sr.WriteLine(szTemp);
// 从网络上取得信息并给szTemp
szTemp = RdStrm.ReadLine();
} }
// back to normal cursor
Cursor.Current = cr;
sr.Close();在做上面这个之前,你要先登入邮箱。
http://www.eastasp.com/zh-cn/products/eastasp.framework.net/index.aspx