3.2.2 邮件发送块 邮件发送块主要实现邮件的发送,包括群发以及附件的发送。 paper51.com
3.2.3 邮件接收块 http://www.paper51.com 主要实现邮件文本信息的收取,包括附件的收取,同时具有其他如发件人等信息提示功能。 内容来自论文无忧网 www.paper51.com 3.2.4 地址薄管理块 内容来自www.paper51.com 主要是方便用户管理自己的联系人,主要是对联系人的增加,删除等。 paper51.com 4 系统总体功能模块和系统总体流程4.1 系统总体功能模块 copyright paper51.com 系统的功能模块有账号管理模块、地址薄管理模块、写邮件模块与收邮件模块。 paper51.com copyright paper51.com 图3 系统功能模块图 内容来自www.paper51.com 4.2 系统流程 copyright paper51.com 当用户打开客户端时,需要注册一个账号进行邮件的收取等操作。 paper51.com
内容来自论文无忧网 www.paper51.com 图4 流程图 copyright paper51.com
5 系统功能实现5.1 新建账号模块 http://www.paper51.com 5.1.1 模块功能 内容来自www.paper51.com 用户运行系统时,需要新建一个邮件账号,在这个信件账号的过程中,需要指定SMTP服务器以及SMTP的端口。本模块主要实现邮件账号的注册。 copyright paper51.com 5.1.2 核心实现 paper51.com 1. 网络连接类及实例TcpClient http://www.paper51.com
为TCP网络服务提供客户端连接类TcpClient实例对象tc。TcpClient类提供了一些简单的方法,用于在同步阻塞模式下通过网络来连接、发送和接收流数据,而实例化的过程也是连接SMTP服务器的过程。 copyright paper51.com
Privite TcpClient tc; 内容来自www.paper51.com 2. 提供用于网络访问的基础数据流及其实例 NetworkStream copyright paper51.com 此类提供访问网络的基础数据流的方法。其中最基本也是最重要的两个方法就是Write()和Read()方法。 内容来自论文无忧网 www.paper51.com private NetworkStream ns; 内容来自www.paper51.com
3. 一维字符串数组变量FilePath paper51.com 此字符串数组主要用来存放用户选择的附件的绝对路径。 paper51.com private string[] FilePath; copyright paper51.com 4. 发送接收邮件所需的基本参数 paper51.com UserName; // 用于调用发送邮件类的用户名 http://www.paper51.com PassWd; // 用于调用发送邮件类的密码 http://www.paper51.com
MailAddress;// 用于调用发送邮件类发送邮件人地址 http://www.paper51.com AccountName; // 新建的帐户名 paper51.com SmtpName; // 用于调用发送邮件类的SMTP服务器名 内容来自www.paper51.com SmtpPort=25; 内容来自论文无忧网 www.paper51.com PopName; // 用于调用接收邮件的pop服务器名 内容来自论文无忧网 www.paper51.com
PopPort=110; paper51.com 5.1.3 运行界面 内容来自论文无忧网 www.paper51.com
指定收发邮件的必须参数之后,再回到系统的主界面。 http://www.paper51.com paper51.com 图5 新用户注册 paper51.com 5.2 发送邮件模块 内容来自论文无忧网 www.paper51.com 5.2.1 模块功能 http://www.paper51.com
在新建账号的过程中已经指定了邮件地址和账号名称,所以默认将以这些参数来发送邮件,通过调用参数的不同程序会自动的调用相对应的代码来执行不同的操作。本模块主要实现邮件的发送,支持文本或html形式发送,同时也支持附件的发送。 内容来自论文无忧网 www.paper51.com 5.2.2 核心实现 paper51.com
1. 重载的构造函数 SmtpMail() copyright paper51.com
此函数主要用于在初始化过程中,把用户选择的附件的路径以参数的形式传给FilePath。 内容来自论文无忧网 www.paper51.com public SmtpMail(ArrayList array) copyright paper51.com { //在重载构造函数的同时,将FilePath初始化 paper51.com
FilePath = new string[array.Count]; 内容来自论文无忧网 www.paper51.com
Attachments = new System.Collections.ArrayList(); paper51.com for (int i = 0; i < array.Count; i++) paper51.com { http://www.paper51.com FilePath[i] = array[i].ToString(); http://www.paper51.com
} copyright paper51.com if (FilePath != null) paper51.com { 内容来自www.paper51.com AddAttachment(FilePath); 内容来自论文无忧网 www.paper51.com } 内容来自www.paper51.com } http://www.paper51.com
2. 添加附件的函数AddAttachment paper51.com 传给FilePath的路径,通过这样一个函数就可以循环的动态的添加到IList接口的一个对象中了,方便以后在具体的实现的过程中的使用。 内容来自论文无忧网 www.paper51.com public void AddAttachment(params string[] FilePath) paper51.com { try copyright paper51.com { paper51.com if (FilePath == null) 内容来自论文无忧网 www.paper51.com { 内容来自论文无忧网 www.paper51.com throw (new ArgumentNullException("FilePath")); copyright paper51.com } paper51.com for (int i = 0; i < FilePath.Length; i++) 内容来自www.paper51.com { copyright paper51.com Attachments.Add(FilePath[i]); http://www.paper51.com
} http://www.paper51.com } paper51.com
catch (Exception ex) 内容来自www.paper51.com { 内容来自论文无忧网 www.paper51.com 内容来自www.paper51.com |