电子邮件系统的设计与开发
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
山东农业大学
毕业论文
题目:电子邮件系统的设计与开发
二○○八年六月
中英文摘要
第一章电子邮件的发展背景和意义
电子邮件翻译自英文的E-mail,它表示通过电子通讯系统进行信件的书写、发送和接收。30多年前,人们发明了电子邮件这种便捷的信息传递方式,这是人类通信历史上的一次革命。电子邮件的兴起是在20世纪80年代,70年代的沉寂主要是因为当时使用Arpanet网络的人太少,网络的速度也仅为目前56Kbps标准速度的二十分之一。受网络速度的限制,那时的用户只能发送些简单的信息,根本无法象现在这样发送大量照片;到80年代中期,个人电脑兴起,电子邮件开始在电脑迷以及大学生中广泛传播开来;到90年代中期,随着计算机技术的发展,出现了功能强大的Internet。在Internet众多的服务功能中,电子邮件E-mail就是其强大功能中的一个。自此,电子邮件被广为使用。
今天使用的最多的通讯系统是互联网,同时电子邮件也是互联网上最受欢迎的功能之一。通过电子邮件系统,您可以用非常低廉的价格,以非常快速的方式,与世界上任何一个角落的网络用户联络系,这些电子邮件可以是文字、图象、声音等各种方式。同时,您可以得到大量免费的新闻、专题邮件,并实现轻松的信息搜索。这是任何传统的方式也无法相比的。正是由于电子邮件的使用简易、投递迅速、收费低廉,易于保存、全球畅通无阻,使得电子邮件被广泛地应用,它使人们的交流方式得到了极大的改变。
随着网络越来越普及,现在已经是人人一个电子邮箱甚至有多个电子邮箱。在Internet 上使用最多的服务当属电子邮件服务了。可见,电子邮件与人们的工作、学习和生活息息相关,它已经深深的融入到每个人的生活中,生活在这个网络时代的人是不可能没有电子邮箱的。电子邮箱已经由以前科技工作者用于科技信息交流转变到现在大多数人用来进行日常生活工作学习的交流工具。同时,电子邮箱的功能也发生了翻天覆地的变化。由原来只能收发文本到现在的收发多媒体文件。简化邮件的编码,减少编码造成的数据冗余。这些都得宜于与电子邮箱有关的网络协议的发展和有关硬件的改进。
现在我们每天都习惯于通过E-mail进行交流,各大网站也几乎都推出了自己的基于WEB 的免费邮件系统。电子邮件已无可争议的地成为互联网上最受用户欢迎的服务。邮件的安全也逐渐受到人们的重视。至今已出现了各种安全保障措施来加强E-mail的安全性。随着电子邮件服务的完善和安全性的不断提高。电子邮件毫无疑问将在人类的通信史上占有一席之地。如同其他的网络服务,电子邮件系统也有其使用的传输协议,包括SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)、POP(Post Office Protocol,邮局协议)和IMAP (Internet Message Access Protocal)消息访问协议)等,这些协议应用于电子邮件的发送和接收。一些邮件处理软件如OutLook Express和FoxMail等就是按照SMTP和POP3 协议结合Windows Sockets套接字进行设计来收发邮件的。
第二章电子邮件收发原理及相关技术
本章简单介绍了SMTP协议,POP3协议的工作原理。只有较深入的掌握了这两个协议的主
要内容,才能理解基于SMTP,POP3的邮件收发系统是怎样工作。
2.1 SMTP协议简介
2.1.1 SMTP协议原始命令码和工作原理
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到
目的地址传送邮件的规则,或者说是由它来控制信件传输的一种中转方式。SMTP协议属于
TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议
所指定的服务器,我们就可以把Email寄到收信人的服务器上了,整个过程只要几分钟。
SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转电子邮件。
(1)SMTP协议的通信模型
首先针对用户发出的邮件请求,由发送SMTP建立一条连接到接收SMTP的双工通讯链路,
这里的接收SMTP是相对于发送SMTP而言的,实际上它既可以是最终的接收者也可以是中间传
送者。发送SMTP负责向接收SMTP发送SMTP命令,而接收SMTP则负责接收并反馈应答。
图2-1 SMTP协议通信模型示意图
(2)SMTP协议的命令和应答
从前面的通讯模型可以看出SMTP协议在发送SMTP和接收SMTP之间的会话是靠发送SMTP
的SMTP命令和接收SMTP反馈的应答来完成的。在通讯链路建立后,发送SMTP发送MAIL FROM:
命令指令邮件发送者,若接收SMTP此时可以接收邮件则作出OK的应答,然后发送SMTP继续发
出RCPT命令以确认邮件是否收到,如果接收到就作出OK的应答,否则就发出拒绝接收应答,
但这并不会对整个邮件操作造成影响。双方如此反复多次,直至邮件处理完毕。SMTP协议共
包含10个SMTP命令,列表如下:
-------------------------------------------------------------------------------
表2-1 SMTP命令命令说明
-------------------------------------------------------------------------------
HELLO <domain><CRLF>识别发送方到接收SMTP的一个HELLO命令
MAIL FROM:<reverse-path><CRLF><reverse-path>为发送者地址。此命令告诉接收方一个新邮件发送的开始并对所有的状态和缓冲区进行初始化。此命令开始一个邮件传输处理最终完成将邮件数据传送到一个或多个邮箱中。
RCPT TO:<forward-path><CRLF>标识各个邮件接收者的地址
DATA <CRLF>接收SMTP将把其后的行为看作邮件数据去处理,以<CRLF>.<CRLF>标识数据的结尾。
REST <CRLF>退出/复位当前的邮件传输
NOOP <CRLF>要求接收SMTP仅做OK应答。(用于测试)
QUIT <CRLF>要求接收SMTP返回一个OK应答并关闭传输。
VRFY <string><CRLF>验证指定的邮箱是否存在,由于安全因素,服务器多禁止此命令。
EXPN <string><CRLF>验证给定的邮箱列表是否存在,扩充邮箱列表,也常禁止使用。HELP <CRLF>查询服务器支持什么命令
VRFY <CRLF>用于验证给定的用户邮箱是否存在,以及接收关于该用户的详细信息。EXPN <CRLF>用于扩充邮件列表。
------------------------------------------------------------------------------- 注:<CRLF>为回车、换行,ASCII码分别为13、10(十进制)。
------------------------------------------------------------------------------- MAIL FROM命令中指定的地址是称作envelope from地址,不需要和发送者自己的地址是一致的。RCPT TO 与之等同,指明的接收者地址称为envelope to地址,而与实际的to:行是什么无关。邮件被分为信封部分,信头部分和信体部分envelope from, envelope to 与message from:, message to:完全不相干。evnelope是由服务器主机间SMTP后台提供的,而message from/to是由用户提供的。有无冒号也是区别。
SMTP协议的每一个命令都会返回一个应答码,应答码的每一个数字都是有特定含义的,如第一位数字为2时表示命令成功;为5表失败;3表没有完成。一些较复杂的邮件程序利用该特点,首先检查应答码的首数字,并根据其值来决定下一步的动作。下面将SMTP的应答码列表如下:
----------------------------------------------------------------
表2-2 应答码说明
----------------------------------------------------------------
501 参数格式错误
502 命令不可实现
503 错误的命令序列
504 命令参数不可实现
211 系统状态或系统帮助响应
214 帮助信息
220 <domain>服务就绪
221 <domain>服务关闭
421 <domain>服务未就绪,关闭传输信道
250 要求的邮件操作完成
251 用户非本地,将转发向<forward-path>
450 要求的邮件操作未完成,邮箱不可用(例如,邮箱忙)