您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 电子邮件系统的设计与开发
山东农业大学毕业论文题目:电子邮件系统的设计与开发院部信息学院专业班级计算机科学与技术04级7班届次2008届学生姓名李康男学号2004160839指导教师姜红花二○○八年六月中英文摘要第一章电子邮件的发展背景和意义电子邮件翻译自英文的E-mail,它表示通过电子通讯系统进行信件的书写、发送和接收。30多年前,人们发明了电子邮件这种便捷的信息传递方式,这是人类通信历史上的一次革命。电子邮件的兴起是在20世纪80年代,70年代的沉寂主要是因为当时使用Arpanet网络的人太少,网络的速度也仅为目前56Kbps标准速度的二十分之一。受网络速度的限制,那时的用户只能发送些简单的信息,根本无法象现在这样发送大量照片;到80年代中期,个人电脑兴起,电子邮件开始在电脑迷以及大学生中广泛传播开来;到90年代中期,随着计算机技术的发展,出现了功能强大的Internet。在Internet众多的服务功能中,电子邮件E-mail就是其强大功能中的一个。自此,电子邮件被广为使用。今天使用的最多的通讯系统是互联网,同时电子邮件也是互联网上最受欢迎的功能之一。通过电子邮件系统,您可以用非常低廉的价格,以非常快速的方式,与世界上任何一个角落的网络用户联络系,这些电子邮件可以是文字、图象、声音等各种方式。同时,您可以得到大量免费的新闻、专题邮件,并实现轻松的信息搜索。这是任何传统的方式也无法相比的。正是由于电子邮件的使用简易、投递迅速、收费低廉,易于保存、全球畅通无阻,使得电子邮件被广泛地应用,它使人们的交流方式得到了极大的改变。随着网络越来越普及,现在已经是人人一个电子邮箱甚至有多个电子邮箱。在Internet上使用最多的服务当属电子邮件服务了。可见,电子邮件与人们的工作、学习和生活息息相关,它已经深深的融入到每个人的生活中,生活在这个网络时代的人是不可能没有电子邮箱的。电子邮箱已经由以前科技工作者用于科技信息交流转变到现在大多数人用来进行日常生活工作学习的交流工具。同时,电子邮箱的功能也发生了翻天覆地的变化。由原来只能收发文本到现在的收发多媒体文件。简化邮件的编码,减少编码造成的数据冗余。这些都得宜于与电子邮箱有关的网络协议的发展和有关硬件的改进。现在我们每天都习惯于通过E-mail进行交流,各大网站也几乎都推出了自己的基于WEB的免费邮件系统。电子邮件已无可争议的地成为互联网上最受用户欢迎的服务。邮件的安全也逐渐受到人们的重视。至今已出现了各种安全保障措施来加强E-mail的安全性。随着电子邮件服务的完善和安全性的不断提高。电子邮件毫无疑问将在人类的通信史上占有一席之地。如同其他的网络服务,电子邮件系统也有其使用的传输协议,包括SMTP(SimpleMailTransferProtocol,简单邮件传输协议)、POP(PostOfficeProtocol,邮局协议)和IMAP(InternetMessageAccessProtocal)消息访问协议)等,这些协议应用于电子邮件的发送和接收。一些邮件处理软件如OutLookExpress和FoxMail等就是按照SMTP和POP3协议结合WindowsSockets套接字进行设计来收发邮件的。文件系统用户第二章电子邮件收发原理及相关技术本章简单介绍了SMTP协议,POP3协议的工作原理。只有较深入的掌握了这两个协议的主要内容,才能理解基于SMTP,POP3的邮件收发系统是怎样工作。2.1SMTP协议简介2.1.1SMTP协议原始命令码和工作原理SMTP(SimpleMailTransferProtocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,或者说是由它来控制信件传输的一种中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,我们就可以把Email寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转电子邮件。(1)SMTP协议的通信模型首先针对用户发出的邮件请求,由发送SMTP建立一条连接到接收SMTP的双工通讯链路,这里的接收SMTP是相对于发送SMTP而言的,实际上它既可以是最终的接收者也可以是中间传送者。发送SMTP负责向接收SMTP发送SMTP命令,而接收SMTP则负责接收并反馈应答。SMTP命令邮件内容应答图2-1SMTP协议通信模型示意图(2)SMTP协议的命令和应答从前面的通讯模型可以看出SMTP协议在发送SMTP和接收SMTP之间的会话是靠发送SMTP的SMTP命令和接收SMTP反馈的应答来完成的。在通讯链路建立后,发送SMTP发送MAILFROM:命令指令邮件发送者,若接收SMTP此时可以接收邮件则作出OK的应答,然后发送SMTP继续发出RCPT命令以确认邮件是否收到,如果接收到就作出OK的应答,否则就发出拒绝接收应答,但这并不会对整个邮件操作造成影响。双方如此反复多次,直至邮件处理完毕。SMTP协议共包含10个SMTP命令,列表如下:-------------------------------------------------------------------------------表2-1SMTP命令命令说明-------------------------------------------------------------------------------HELLO<domain><CRLF>识别发送方到接收SMTP的一个HELLO命令文件系统发送SMTP接受SMTPMAILFROM:<reverse-path><CRLF><reverse-path>为发送者地址。此命令告诉接收方一个新邮件发送的开始并对所有的状态和缓冲区进行初始化。此命令开始一个邮件传输处理最终完成将邮件数据传送到一个或多个邮箱中。RCPTTO:<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(十进制)。-------------------------------------------------------------------------------MAILFROM命令中指定的地址是称作envelopefrom地址,不需要和发送者自己的地址是一致的。RCPTTO与之等同,指明的接收者地址称为envelopeto地址,而与实际的to:行是什么无关。邮件被分为信封部分,信头部分和信体部分envelopefrom,envelopeto与messagefrom:,messageto:完全不相干。evnelope是由服务器主机间SMTP后台提供的,而messagefrom/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要求的邮件操作未完成,邮箱不可用(例如,邮箱忙)550要求的邮件操作未完成,邮箱不可用(例如,邮箱未找到,或不可访问)451放弃要求的操作;处理过程中出错551用户非本地,请尝试<forward-path>452系统存储不足,要求的操作未执行552过量的存储分配,要求的操作未执行553邮箱名不可用,要求的操作未执行354开始邮件输入,以.结束554操作失败(3)SMTP协议工作原理SMTP协议规定的命令是以明文方式进行的。SMTP工作在两种情况下:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器。SMTP是个请求/响应协议,命令和响应都是基于ASCII文本,并以CR和LF符结束。响应包括一个表示返回状态的三位数字代码。SMTP服务器在TCP协议25号端口监听连接请求。连接和发送过程如下:a.建立TCP连接b.客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令服务器端正希望以OK作为响应,表明准备接收。c.客户端发送RCPT命令,以标识该电子邮件的计划接收人,可以有多个RCPT行。服务器端则表示是否愿意为收件人接受邮件。d.协商结束,发送邮件,用命令DATA发送。e.以.表示结束输入内容一起发送出去。f.结束此次发送,用QUIT命令退出。2.1.2SMTP协议的会话流程在进行程序设计之前有必要弄清SMTP协议的会话流程,其实前面介绍的内容已经可以大致勾勒出用SMTP发送邮件的框架了,对于一次普通的邮件发送,其过程大致为:先建立TCP连接,随后客户端发出HELLO命令以标识发件人自己的身份,并继续由客户端发送MAIL命令,如服务器应答为OK,可继续发送RCPT命令来标识电子邮件的收件人,在这里可以有多个RCPT行,而服务器端则表示是否愿意为收件人接受该邮件。在双方协商结束后,用命令DATA将邮件发送出去,其中对表示结束的.也一并发送出去。随后结束本次发送过程,以QUIT命令退出。下面通过一个实例,从langrui@sohu.com发送邮件到renping@sina.com来更详细直观地描述此会话流程:(S;SENDERR:RECIEVOR)s:建立连接R:220sina.comSimpleMailTransferServiceReadyS:HELLOsohu.com//客户端发出HELLO命令以标识发件人自己的身份R:250sina.comS:MAILFROM:<langrui@sohu.com>//客户端发送MAIL命令R:250OK//250要求的邮件操作完成S:RCPTTO:<renping@sina.com>//发送RCPT命令来标识电子邮件的收件人,在这里可以有多个RCPT行R:250OK//250服务器端则表示是否愿意为收件人接受该邮件S:DATA//命令DATA将邮件发送出去R:354Startmailinput;endwith<CRLF>.<CRLF>S:Blahblahblah...S:...等等S:CRLF.CRLFR:250OKS:QUITR:221sina.comServiceclosingtransmissionchannel2.2POP3协议2.2.1POP3协议用于电邮接
本文标题:电子邮件系统的设计与开发
链接地址:https://www.777doc.com/doc-77294 .html