简单邮件收发系统的设计与实现:简单的系统实现与设计有哪些

  摘要:目前有很多邮件客户端软件免费提供给用户使用,但是它们却过于复杂和庞大,为了用户能够方便快捷地收发邮件,利用SMTP协议和POP协议,设计并实现了简单但实用的电子邮件收发系统。
  关键词:电子邮件;SMTP;POP3;邮件收发
  中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2011)35-0000-0c
  
  The Design and Realization of Simple Mail Sending/Receiving System
  LIN Yu-xiang,WANG Yu-feng
  (Nanyang Institute of Technology, Nanyang 473004,China)
  Abstract: Though there are a lot of free software for sending and receiving mails which are also complicated and huge to users. For users to easily and quickly send and receive mail,we do this software with the rock-bottom protocol of SMTP and POP.
  Key words:E-mail;SMTP;POP3;send and receive e-mail
  随着通信网络的迅速发展,电子邮件以其方便、快捷的特性而深受广大网络用户的欢迎。不论是个人、企业还是政府等,都在通过电子邮件进行日常生活和工作上的联系。目前收发电子邮件的工具很多,但功能越来越趋于复杂,除了最主要的收发信件功能之外,很多功能显得过于华丽而不太实用。有鉴于此,在了解RFC底层协议的基础上,开发了这个各种功能相对简单但实用的邮件客户端程序,简化了很多不必要的功能。
  1系统总体设计
  作为一个电子邮件收发系统,邮件的发送与收取是其核心功能,发送模块实现电子邮件的发送,支持邮件的单个发送和群发,邮件接收模块,实现电子邮件的收取。另外还增加了邮件转发、回复、删除以及地址薄管理等模块,其中地址薄管理模块可以让用户方便地管理自己的联系人,对联系人进行添加、修改、删除等。
  
  
  2 主要模块设计
  2.1 邮件发送模块
  主要成员变量说明
  1) SmtpClient类
  此类允许应用程序使用简单邮件传输协议 (SMTP) 来发送电子邮件,在使用SmtpClient类发送电子邮件时必须指定一下信息:用来发送电子邮件的SMTP主机服务器;身份验证的凭据(如果SMTP服务器要求);发件人的电子邮件地址;收件人的电子邮件地址;邮件内容等。
  2)MailMessage类
  此类主要用于指定电子邮件的发送地址、收件人地址等,
  
  
  3)MailAttachment类
  此类用于构造电子邮件附件,首先实例化MailAttachment类,然后把它附加到MailMessage 对象的Attachments集合中就可以完成向电子邮件中添加附件的功能。
  使用MailAttachment类添加邮件附件的代码如下:
  string[] attaFiles = this.txtAttach.Text.Split(";");
   if (attaFiles.Length > 0)
   {
   for (int j = 0; j    message.IsBodyHtml = true;//指定信息的主体格式为HTML格式
   message.BodyEncoding = System.Text.Encoding.UTF8;
   string[] attaFiles = this.txtAttach.Text.Split(";");
   if (attaFiles.Length > 0)
   { for (int j = 0; j = 1; i -= 1)
   {MIMEParser.Message m = popClient.GetMessageHeader(i);//获得邮件头
   TreeNode node;
   if (m != null)
   { if (m.Subject.Length > 0)
   node = listMessages.Nodes.Add(m.Subject);
   else
   node = listMessages.Nodes.Add("无主题");
   node.Tag = i.ToString();}
   Thread.Sleep(1);}
   MessageBox.Show(this, "邮件接收完毕!"); }
  2.3 删除邮件
  主要成员变量说明
  1) 网络连接类及实例TcpClient tc:为 TCP 网络服务提供客户端连接类TcpClient实例对象tc。TcpClient 类提供了一些简单的方法,用于在同步阻塞模式下通过网络来连接、发送和接收流数据。而实例化的过程也是连接SMTP服务器的过程。
  2)提供用于网络访问的基础数据流及其实例 NetworkStream ns:此类提供访问网络的基础数据流的方法。其中最基本也是最重要的两个方法就是Write()和Read()方法,至于参数不再次赘述。
  主要成员函数说明
  1)DeleteMessage(int intMessageIndex):此方法主要是实现对电子邮件的删除操作,POP3协议是一个客户端/服务器协议,它为实现客户端和服务器端通讯,定义了一套会话命令,客户机通过调用这些命令来处理存放在POP3服务器中的电子邮件,而此方法就是实现删除服务器中指定邮件的功能,首先需要传入一个参数即邮件索引,然后根据会话命令删除POP3服务器中指定的邮件。
  关键代码如下:
  public bool DeleteMessage(int intMessageIndex)
   {return SendCommand("DELE " + intMessageIndex.ToString());}
  3系统运行效果
  3.1新建邮件帐户
  用户打开软件之后,需要新建一个邮件帐户,在新建邮箱帐户的过程中,需要指定验证的邮箱名地址,然后按“Esc”键系统会自动显示出发送服务器和接收服务器,然后输入邮箱密码,点击测试,看能否连接到远程邮箱服务器。新建邮箱帐户的主界面:
  
  
  3.2发送邮件
  1)发送不带附件的邮件
  在新建邮箱帐户的过程中已经指定了邮箱地址和密码,所以默认以这些参数来发送邮件。通过调用参数的不同程序会自动的调用相对应的代码来执行不同的操作。发送简单的邮件运行界面。
  
  
  发送带附件的邮件和简单的邮件不同之处在于多了发送附件的功能,并且邮件支持添加,清空,附件等功能。 运行界面:
  
  
  3.3验证邮件发送是否成功
  邮件发送出去之后,用Foxmail跟踪接收之后,证明邮件和附件都可以正常接收,具体的Foxmail的接收界面:
  
  
  4 结束语
  本文利用SMTP协议和POP协议,经过前期对系统的需求分析和对相关协议的了解,设计并实现了简单的电子邮件收发系统。本系统是一个基于SNMP的系统,作为服务器管理的一部分,具有很好的开放性和独立性。电子邮件做为互联网的一个应用,大量的敏感信息要在网络上传播,电子邮件本身存在的安全隐患以及传输机密信息的特殊性,对电子邮件的安全性提出了更高的要求。开发一个安全性高、可实现大附件邮件分包传送的邮件系统来满足安全性需求将是下一步的研究目标。
  
  参考文献:
  [1] Simon Robinson,K.Scott Allen.C#高级编程[M].北京:清华大学出版社,2002.
  [2] Tom Archer. C#技术内幕[M].北京:清华大学出版社,2002.
  [3] 罗军舟,黎波涛,杨明.TCP/IP 协议及网络编程技术[M].北京:清华大学出版社,2004.
  [4] 刘建辉.基于SSL的安全电子邮件系统研究[J].科技广场,2008,10.
  

推荐访问:收发 邮件 简单 简单邮件收发系统的设计与实现 收发电子邮件教学设计 电子邮件注册