当前位置:文档之家› 垃圾邮件过滤系统设计

垃圾邮件过滤系统设计

课 程 设 计

项目名称: 垃圾邮件过滤系统设计

课程名称: 计算机网络编程技术

信息工程学院计算机系

目录

一、设计题目 ---------------------------------------------------- 2

二、设计要求 ---------------------------------------------------- 2

三、小组分工 ---------------------------------------------------- 2

四、设计内容 ---------------------------------------------------- 2

4.1 设计原理------------------------------------------------- 2

4.2 设计协议------------------------------------------------- 3

4.3 设计流程------------------------------------------------- 3

4.3.1 ESMTP协议的工作流程-------------------------------- 3

4.3.2 POP3协议的工作流程--------------------------------- 4

4.4 运行环境------------------------------------------------- 5

五、 功能模块分析 ----------------------------------------------- 5

5.1 发送功能模块--------------------------------------------- 5

5.2 接收功能模块--------------------------------------------- 7

六、界面设计 ---------------------------------------------------- 8

6.1 邮件发送界面--------------------------------------------- 8

6.2 邮件接收界面--------------------------------------------- 9

七、设计不足之处及遇到的问题 ----------------------------------- 10

6.1 设计不足之处-------------------------------------------- 10

6.2 遇到的问题---------------------------------------------- 11

八、心得体会 --------------------------------------------------- 11

一、设计题目

垃圾邮件过滤系统设计

二、设计要求

① 能够群发邮件,发送内容可以是广告等垃圾信息;

② 接收方地址可以输入、从文件导入、从地址簿导入;

③ 接收方能够自动检测垃圾邮件。判定对象可以依据IP地址、邮件主题、邮件内容等组

合。可以采用关键词的模糊匹配、或者邮件重复度比较、或者饱和攻击可能性,等等来设计

判定规则。

三、小组分工

接收方地址可以输入、从文件导入、从地址簿导入。

接收方能够自动检测垃圾邮件。判定对象可以依据IP地址、邮件主题、邮件内容

等组合。 能够群发邮件,发送内容可以是广告等垃圾信息。

四、设计内容

4.1 设计原理

邮件系统主要由服务器和客户端组成,服务器包括发送服务器和接收服务器。系统构成

如图4.1所示。邮件系统包括发送和接收两部分,图中实线部分表示的是客户A将邮件发送

出去到客户B接收下来的过程,虚线部分则是客户A如何从客户B处接收邮件的过程。

图4.1 邮件系统的工作原理

4.2 设计协议

(1)简单邮件传送协议(SMTP协议),是Internet上传输邮件的标准协议,用于提交和传

送邮件。SMTP的目标是可靠、高效地传送邮件,它通常用于把邮件从客户端传输到服务器,

以及从一台服务器传输到另一台服务器。

ESMTP(扩展SMTP)是对标准SMTP的扩展,它与SMTP的区别在于,ESMTP服务器会

要求用户提供用户名和密码以便验证身份;而使用SMTP是不需要验证用户账户。

(2)邮局协议第三版(POP3协议),也是Internet上传输邮件的标准协议,它提供信息存

储功能,为用户保存收到的邮件,且从邮件服务器上下载这些邮件。

4.3 设计流程

4.3.1 ESMTP协议的工作流程

ESMTP的工作流程主要包含建立连接、传送信封、传送数据和断开连接4个阶段,其

流程图如图4.2所示。

图4.2 ESMTP工作流程图

4.3.2POP3协议的工作流程

POP3的工作流程图如图4.3所示。主要包括认证阶段、邮件接收阶段、更新阶段。

图4.3 POP3协议的工作流程

4.4 运行环境

Visual studio 2008/ Visual studio 2010、联网的PC机。

五、 功能模块分析

5.1发送功能模块

通过.Mail的SmtpClient类实例化一个smtp客户端client,用

MailAddress类生成邮件对象,通过client.send()方法发送邮件。发送方能通过地址

簿,导入等功能输入多个接收方邮箱,实现群发功能。

主要代码如下:

//确定smtp服务器地址。实例化一个Smtp客户端

.Mail.SmtpClient client = new

.Mail.SmtpClient(cmbBoxSMTP.Text);

//生成一个发送地址

string strFrom = txtUserName.Text.Trim();

MailAddress from = new MailAddress(strFrom);

string[] rece = txtEmail.Text.Split(';');

for (int i = 0; i < rece.Length; i++)

{

MailAddress to = new MailAddress(rece[i]);

MailMessage message = new MailMessage(from, to);//实例化一个电子邮件

//为 message 添加附件

foreach (TreeNode treeNode in treeViewFileList.Nodes)

{

//得到文件名

string fileName = treeNode.Text;

//判断文件是否存在

if (File.Exists(fileName))

{

//构造一个附件对象

Attachment attach = new Attachment(fileName);

//得到文件的信息

ContentDisposition disposition = attach.ContentDisposition;

disposition.CreationDate =

System.IO.File.GetCreationTime(fileName);

disposition.ModificationDate = System.IO.File.GetLastWriteTime(fileName);

disposition.ReadDate =

System.IO.File.GetLastAccessTime(fileName);

//向邮件添加附件

message.Attachments.Add(attach);

}

else

{

MessageBox.Show("文件" + fileName + "未找到!");

}

}

message.Subject = txtSubject.Text;

message.SubjectEncoding = Encoding.UTF8;

message.Body = rtxtBody.Text;

message.BodyEncoding = Encoding.UTF8;

client.DeliveryMethod = work;

message.BodyEncoding = System.Text.Encoding.UTF8;

//message.IsBodyHtml = false;

//如果服务器支持安全连接,则将安全连接设为true。163不支持

//client.EnableSsl = false;

//设置用户名和密码。

//string userState = message.Subject;

eDefaultCredentials = false;

string username = txtUserName.Text;//用户名

string passwd = txtPassword.Text;//密码

NetworkCredential myCredentials = new NetworkCredential(username,

passwd);

client.Credentials = myCredentials;

//发送邮件

client.Send(message);

//提示发送成功

MessageBox.Show("成功向"+rece[i]+"发送!");

5.2 接收功能模块

接收方根据POP3协议,向邮件服务器发送USER加用户名,PASS加密码登入

邮箱,登入成功后发送STAT得到邮件数量,再通过发送RETR加邮件下标(第几封)

得到该邮件的内容。内容中To:之后为收信人,From:之后为发信人,Subject:

之后为主题,全都获取后根据内容中提示的编码类型,对正文进行解码。如Base64

编码采用如下方式解码:

private string DecodeBase64(string p_Text)

{

相关主题