ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:53.93KB ,
资源ID:6228784      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6228784.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(用VC#编写邮件程序.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

用VC#编写邮件程序.docx

1、用VC#编写邮件程序用visual c#实现xx邮件接收程序_邮件服务器作者:网友供稿 点击:0 西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!文章页数:1 本文通过运用C#来实现一个基于POP3协议的邮件接收程序来向大家展示C#网络编程的功能强大,同时也向大家介绍一下基于POP3协议的电子邮件接收原理。首先我向大家介绍邮件接收的基本原理:

2、一开始便是客户端与服务器的连接。不过,在客户端连接到服务器之前,注意把端口设为POP3协议默认的110号。客户端连接服务器成功后,服务器会返回以下信息:+OK字符+OK是POP3协议的返回信息。它的回应信息不像SMTP协议那样用丰富多变的数字表示,只有两个:+OK或者-ERR。其中,+OK表示连接成功,而-ERR则表示连接失败。接下来,客户端输入USER 该命令告诉服务器你的用户名。注意,有些服务器会区分大小写字母的。服务器返回+OK后,客户端输入PASS 服务器返回+OK后,还返回一些邮箱的统计信息,比如:+OK 1 message(s) 1304 byte(s)不同的服务器返回的信息格式不

3、太一样,所以我们可以用STAT命令来查看邮箱的情况。STAT命令的回应中有两个数字,分别表示邮件的数量和邮件的大小。如果信箱里有信,就可以用RETR命令来获取邮件的正文。RETR命令的格式为:RETR 如果返回结果第一行是+OK信息,则表示成功。第二行起便是邮件的正文。最后一行和SMTP协议一样,是一个单独的英文句号,表示邮件的结尾部分。把邮件存储起来后要用DELE命令删除邮箱中的邮件,否则原有的邮件会继续保留在服务器上,一旦邮件一多,你的邮箱就爆了。DELE命令的格式为:DELE 如果删错了,可以用RSET命令来恢复所有已被删除的邮件。条件是你还没有退出,一旦退出,那就一切Bye Bye了。

4、全部完成以后,输入QUIT命令就可以退出POP3服务器了。以上,我简要地向大家介绍了POP3邮件接收的基本过程和原理,下面就是一个运用上面的原理实现的简易的邮件接收程序。在本程序中,我主要用到了两个类:TcpClient类和NetworkStream类。TcpClient类是运用C#进行网络编程的一个非常重要的类,它提供了通过网络连接、发送和接收数据的简单方法,从而实现了网络编程的大大简化。NetworkStream类实现通过网络套接字发送和接收数据的标准.Net框架流机制,它支持对网络数据流的同步和异步访问,是实现网络通讯的重要组成部分。在这里我先给出程序最终的运行效果,图示如下:图1 具体

5、的过程步骤如下:第一步:打开VS.Net,新建一个工程,在项目类型里选择Visual C#项目,在模板里选择Windows 应用程序,工程名不妨为MailReceiver,最后点击确定按钮。第二步:布置主界面。先往窗体上添加如下控件:六个Label控件、四个TextBox控件、一个RichTextBox控件、一个CheckBox控件、一个ListBox控件以及三个Button控件。各个控件的属性设置如图1所示。在设置完图1的各个控件属性后,对主窗体进行合理的布局,则可得到最终的界面示意图如下所示:图2 第三步:代码编写。首先因为程序中运用到网络编程的一些重要的类,如:TcpClient、Net

6、workStream,所以在程序的开头处需添加以下名字空间(Namespace):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 = rn;最后,便是三个按钮的消息响应函数,这三个函数是程序的主体部分。其中Conn

7、ect按钮的消息响应函数完成了到POP3服务器的连接工作,并根据用户名和密码进行登录。如果一切顺利,则再向服务器发送STAT命令从而获得邮箱中邮件的相关信息:邮件数量和大小,最终完成连接。其函数实现如下: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); St

8、atus.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(RdStr

9、m.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();N

10、etStrm.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();而Disconnect按钮的消息响应函数则通过向服务器发送QUIT命令来终止和

11、邮件服务器的连接,实现比较简单,具体函数如下: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.

12、Length);Status.Items.Add(RdStrm.ReadLine();/断开连接NetStrm.Close();RdStrm.Close();/改变按钮的状态Connect.Enabled = true;Disconnect.Enabled = false;Retrieve.Enabled = false;/将光标置回原来的状态Cursor.Current = cr;最后,Retrieve按钮的消息响应函数则根据用户在邮件编号文本框中的输入来取得相应的邮件,它向服务器发送的命令为RETR,并根据返回的信息判断邮件的有无。若返回信息的第一个字符为+,则表示+OK,也即成功;若为-

13、,则表示-ERR,也即为失败。在成功的情况下,若用户选择了在邮件服务器上保留备份,则收取邮件后不删除服务器上的备份,否则用DELE命令来进行相应的删除。函数实现如下: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+CRL

14、F; szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray();NetStrm.Write(szData,0,szData.Length);szTemp = RdStrm.ReadLine();if(szTemp0!=-) /不断地读取邮件内容,只到结束标志:英文句号while(szTemp!=.)Message.Text += szTemp;szTemp = RdStrm.ReadLine();/若BackupChBox未选中,则收取邮件后,删除保留在服务器上的邮件if(BackupChBox.Checked = fals

15、e)Data = DELE + MailNum.Text + CRLF;szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray();NetStrm.Write(szData,0,szData.Length);Status.Items.Add(RdStrm.ReadLine();elseStatus.Items.Add(szTemp);/将光标置回原来的状态Cursor.Current = cr;catch(InvalidOperationException err)Status.Items.Add(Error: +err.To

16、String();最后一步便是保存你的劳动成果,再进行编译、建立并运行了,最终的图示我已经在文章的开头处给出了,还行吧。到处为止,我们已经完成了POP3邮件接收程序的全部工作了。从中,我们不难发现运用C#完成一些网络实用编程是非常容易的。只要我们掌握了其中的原理,具体的编程工作就变得非常的轻松而且有条理。即使以前你对POP3邮件接收的实现一无所知,我想在看完这篇文章后,你对它至少会有了个大概的了解。不过,还要指出的是这只是一个很简单的实例,如果要在实际中应用,则还需大大的改进,有兴趣的读者不妨一试。, 文章整理:西部数码-专业提供域名注册、虚拟主机服务以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1