电子邮件系统的设计方案与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章前言 1.1课题来源当前流行的各大邮件客

户端软件除了最主要的收发信件之外,功能越来越复杂,但是人们平常真正用到的功能很少,很多功能尤其对于那些计算机知识相对缺乏的人来说,更加显得太过于华丽而不太实用。有鉴于此,在了解RFC底层协议的基础上,本人开发了这个各种功能相对简单实用的邮件客户端程序,简化了很多不必要的功能。

1.2电子邮件介绍电子邮件<简称E-mail)又称电子信箱、电子邮政,它是一种用电子手段提供信息交换的通信方式。它是全球多种网络上使用最普遍的一项服务。这种非交互式的通信,加速了信息的交流及数据传送,它是一个简易、快速的方法。通过连接全世界的Internet,实现各类信号的传送、接收、存储等处理,将邮件送到世界的各个角落。到目前为止,可以说电子邮件是Internet资源使用最多的一种服务,E-mail不只局限于信件的传递,还可用来传递文件、声音及图形、图像等不同类型的信息。电子邮件不是一种“终端到终端”的服务,是被称为“存储转发式”服务。这正是电子信箱系统的核心,利用存储转发可进行非实用时通信,属异步通信方式。即信件发送者可随时随地发送邮件,不要求接收者同时在场,即使对方现在不在,仍可将邮件读取信件,不受时空限制。在这里,“发送”邮件意味着将邮件放到收件人的信箱中,而“接收”邮件则意味着从自己的信箱中读取信件,信箱实际上是由文件管理系统支持是一个实体。因为电子邮件是通过邮件服务器

1.3电子邮件的工作原理:电子邮件的发送是通过电子邮件简单传速协议

电子邮件的基本原理,是在通信网上设立“电子信箱系统”,它实际上是一个计算机系统。系统的硬件是一个高性能、大容量的计算机。硬盘作为信箱的存储介质,在硬盘上为用户分一定的存储空间作为用户的“信箱”,每位用户都有属于自己的一个电子信箱。并确定一个用户和用户可以随意修改的口令。存储空间包含存放所收信件、编辑信件以及信件存盘三部分空间,用户使用口令开启自己的信箱,并进行发信、读信、编辑、转发、存档等各种操作。系统功能主要由软件实现。

1.4开发环境及运行环境 1.4.1开发环境 AMD Athlom(TM>, 512 内存,80G 硬盘 Microsoft<R)Windows XP Professional Micosoft Visual Studio 2003

1.4.2运行环境Internet pentium 2及以上处理器,32M以上内存,4G以上硬盘Micosoft windows 9X/NT操作系统800*600或以上的屏幕分辨率确保机器上安装有.Net FrameWork 1.0或者以上版本

第二章系统需求分析

2.1系统功能需求分析

电子邮件系统需求实现的功能包括新建用户的帐号,接受简单邮件或带附件的邮件,发送简单邮件或发送带附件的邮件,电子邮件编号,电子邮件分类管理,通信薄管

理。为了使用通信薄,于是添加了对用户资料的增加,修改,取消操作。

2.1.1软件的总体架构

图 1 软件构架图

2.1.2 系统功能

图2 系统功能图

2.1.3系统总体用例图

图3 系统总体用例图

2.2 数据库需求分析

在对系统进行系统需求分析的基础上,可以得到系统在处理数据时会用到下面所示的数据项和数据结构:

1)用户信息:帐号名称,用户名,密码,电子邮箱地址,SMTP服务器,SMTP端口号,POP3服务器,POP3端口号。

2)通信薄信息:姓名,邮箱地址,电话号码,QQ号,手机号码,通信地址。

第三章系统设计

3.1系统的流程设计

邮件客户端最重要的两个功能就是接收邮件和发送邮件,其中接收邮件的流程图如图4所示。从流程图中可以看出,接收邮件时首先要创建一个TCP连接到POP3服务器。如果连接不成功就退出执行,连接成功后再发送USER和PASS命令进行身份验证,身份验证通过后再通过STA T命令获得要接收的邮件数,当邮件数大于0时,通过RETR命令逐个接收邮件。接收邮件完毕后,检查帐号中是否保留服务器上的邮件设置,如果是就不作任何操作,否则从服务器上删除已经接受的邮件。最后关闭连接。完成邮件接收。

图4 接收邮件流程图

发送邮件的流程图,先检查“发信箱”目录中是否有待发邮件,如果有就逐个发送这些邮件,流程图如图5所示。其发送过程,首先需要创建一个TCP连接,连接到SMTP服务器,如果连接不成功就退出程序。连接成功后发送USER和PASS命令进行身份验证。身份验证通过后发送邮件,如果发送成功就关闭连接,更新数据库,完成邮件发送任务。

图5 发送邮件流程图

3.2 SMTP协议的研究

由于要开发的是邮件客服端程序,就不得不用到SMTP协议和POP协议。而我个人负责的是邮件发送功能的实现,因此就必然会涉及到SMTP

3.2.1SMTP介绍

简单邮件传输协议

SMTP的一个重要特点是它能够在传送中接力传送邮件,传送服务器提供了进程间通信环境

3.2.2SMTP模型

SMTP设计基于以上通信模型:针对用户的邮件请求,发送SMTP建立于接收SMTP 之间建立一个双向传送通道。接收SMTP可以是最终接收者也可以是中间传送者。SMTP 命令由发送SMTP发出,由接收SMTP接收,而应答则反方面传送。

一旦传送通道建立,SMTP发送者发送MAIL命令指明邮件发送者。如果SMTP接收者可以接收邮件则返回OK应答。SMTP发送者再发出RCRT命令确认邮件是否接收到。如果SMTP接收者接收,则返回OK应答;如果不能接收到,则发出拒绝接收应答<但不中止整个邮件操作),双方将如此重复多次。当接收者到全部邮件后会接收到特别的序列,如果接收者成功处理了邮件,则返回OK应答。

SMTP提供传送邮件的机制,如果接收方与发送方连接在同一个传送服务下时,邮件可以直接由发送方主机传送到接收方主机;或者,当两者在不同一个传送服务下时,通过中继SMTP服务器传送。为了能够对SMTP服务器提供中继能力,它必须拥有最终目的主机地址和邮箱名称。

MAIL命令参数是回复路径,它指定邮件从何处来;而RCPT命令的参数是转发路径的,它指定邮件向何处去。向前路径是源路径,而回复路径是返回路径<它用于发生错误时返回邮件)。

当同一个消息要发往不同的接收者时,SMTP遇到了向不同接收者发送同一份数据的复制品的问题,邮件命令和应答有一个比较奇怪的语法,应答也有一个数字代码。在下面,例子中可以看到哪些使用实际的命令和应答。完整的命令和应答在第四节。

命令与应答对大小写不敏感,也就是说,命令和应答可以是大写,小写或两者的混合,但这一点对用户邮件名称却不一定是对的,因为有的主机对用户名大小写是敏感的。这样SMTP实现中就将用户邮箱名称保留成初始时的样子,主机名称对大小写不敏感。

命令与应答由ASCII字母表组成,当传送服务提供8位子节传送通道,每7位字符正确传送,而最高位被填充为0。当指定一般的命令或应答格式后,参数会由一些类似于语言的字符串表示出来,如“”或“”,这里尖括号表示这是一种类似于语言的变量。

3.3SMTP协议的命令和应答

3.3.1SMTP协议的命令

SMTP命令定义了邮件传输或用户定义的系统功能。它的命令是由结束的字符串。而在带有参数的情况下,命令本身由和参数分开,如果未带参数可以直接和连接。邮箱的语法格式必须和接收站点的格式一致。

3.3.2SMTP的应答码

对SMTP命令的响应是多样的,它确定了在邮件传输过程中请求和处理的同步,也保证了发送SMTP知道接收SMTP的状态。每个命令必须有且只有一个响应。

SMTP响应由三位数字组成,其后跟一些文本。数字帮助决定下一个应该进入的状态,而文本对人是有意义的。三位的响应已经包括了足够的信息,不用再阅读文本,文本

相关文档
最新文档