![]() 图1 |
![]() 图2 |
using System.Net; using System.Net.Sockets; using System.IO; |
public TcpClient Server; public NetworkStream NetStrm; public StreamReader RdStrm; public string Data; public byte[] szData; public string CRLF = "\r\n"; |
private void Connect_Click(object sender, System.EventArgs e) { //将光标置为等待状态 Cursor cr = Cursor.Current; Cursor.Current = Cursors.WaitCursor; //用110端口新建POP3服务器连接 Server = new TcpClient(PopServer.Text,110); Status.Items.Clear(); try { //初始化 NetStrm = Server.GetStream(); RdStrm= new StreamReader(Server.GetStream()); Status.Items.Add(RdStrm.ReadLine()); //登录服务器过程 Data = "USER "+ Username.Text+CRLF; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData,0,szData.Length); Status.Items.Add(RdStrm.ReadLine()); Data = "PASS "+ Password.Text+CRLF; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData,0,szData.Length); Status.Items.Add(RdStrm.ReadLine()); //向服务器发送STAT命令,从而取得邮箱的相关信息:邮件数量和大小 Data = "STAT"+CRLF; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData,0,szData.Length); Status.Items.Add(RdStrm.ReadLine()); //改变按钮的状态 Connect.Enabled = false; Disconnect.Enabled = true; Retrieve.Enabled = true; //将光标置回原来的状态 Cursor.Current = cr; } catch(InvalidOperationException err) { Status.Items.Add("Error: "+err.ToString()); } } |
private void Disconnect_Click(object sender, System.EventArgs e) { //将光标置为等待状态 Cursor cr = Cursor.Current; Cursor.Current = Cursors.WaitCursor; //向服务器发送QUIT命令从而结束和POP3服务器的会话 Data = "QUIT"+CRLF; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData,0,szData.Length); Status.Items.Add(RdStrm.ReadLine()); //断开连接 NetStrm.Close(); RdStrm.Close(); //改变按钮的状态 Connect.Enabled = true; Disconnect.Enabled = false; Retrieve.Enabled = false; //将光标置回原来的状态 Cursor.Current = cr; } |
private void Retrieve_Click(object sender, System.EventArgs e) { //将光标置为等待状态 Cursor cr = Cursor.Current; Cursor.Current = Cursors.WaitCursor; string szTemp; Message.Clear(); try { //根据邮件编号从服务器获得相应邮件 Data = "RETR "+ MailNum.Text+CRLF; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData,0,szData.Length); szTemp = RdStrm.ReadLine(); if(szTemp[0]!='-') { //不断地读取邮件内容,只到结束标志:英文句号 while(szTemp!=".") { Message.Text += szTemp; szTemp = RdStrm.ReadLine(); } //若BackupChBox未选中,则收取邮件后,删除保留在服务器上的邮件 if(BackupChBox.Checked == false) { Data = "DELE" + MailNum.Text + CRLF; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray()); NetStrm.Write(szData,0,szData.Length); Status.Items.Add(RdStrm.ReadLine()); } } else { Status.Items.Add(szTemp); } //将光标置回原来的状态 Cursor.Current = cr; } catch(InvalidOperationException err) { Status.Items.Add("Error: "+err.ToString()); } } |
自由广告区 |
![]() |
分类导航 |
邮件新闻资讯: IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮 电子邮箱 | 反垃圾邮件|邮件客户端|网络安全 行业数据 | 邮件人物 | 网站公告 | 行业法规 网络技术: 邮件原理 | 网络协议 | 网络管理 | 传输介质 线路接入 | 路由接口 | 邮件存储 | 华为3Com CISCO技术 | 网络与服务器硬件 操作系统: Windows 9X | Linux&Uinx | Windows NT Windows Vista | FreeBSD | 其它操作系统 邮件服务器: 程序与开发 | Exchange | Qmail | Postfix Sendmail | MDaemon | Domino | Foxmail KerioMail | JavaMail | Winwebmail |James Merak&VisNetic | CMailServer | WinMail 金笛邮件系统 | 其它 | 反垃圾邮件: 综述| 客户端反垃圾邮件|服务器端反垃圾邮件 邮件客户端软件: Outlook | Foxmail | DreamMail| KooMail The bat | 雷鸟 | Eudora |Becky! |Pegasus IncrediMail |其它 电子邮箱: 个人邮箱 | 企业邮箱 |Gmail 移动电子邮件:服务器 | 客户端 | 技术前沿 邮件网络安全: 软件漏洞 | 安全知识 | 病毒公告 |防火墙 攻防技术 | 病毒查杀| ISA | 数字签名 邮件营销: Email营销 | 网络营销 | 营销技巧 |营销案例 邮件人才:招聘 | 职场 | 培训 | 指南 | 职场 解决方案: 邮件系统|反垃圾邮件 |安全 |移动电邮 |招标 产品评测: 邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端 |