朱祺 论文(5).doc

上传人:仙人指路1688 文档编号:4025984 上传时间:2023-04-01 格式:DOC 页数:54 大小:2.31MB
返回 下载 相关 举报
朱祺 论文(5).doc_第1页
第1页 / 共54页
朱祺 论文(5).doc_第2页
第2页 / 共54页
朱祺 论文(5).doc_第3页
第3页 / 共54页
朱祺 论文(5).doc_第4页
第4页 / 共54页
朱祺 论文(5).doc_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《朱祺 论文(5).doc》由会员分享,可在线阅读,更多相关《朱祺 论文(5).doc(54页珍藏版)》请在三一办公上搜索。

1、武汉工程大学邮电与信息工程学院毕业设计(论文)电子邮件软件的设计与实现Design and Realization of Email Software学生姓名 朱祺 学 号 7403130329 专业班级 通信工程0703班指导教师 程雯 2011年5月作者声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果,除了文中特别加以标注的地方外,没有任何剽窃、抄袭、造假等违反学术道德、学术规范的行为,也没有侵犯任何其他人或组织的科研成果及专利。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。如本毕业设计(论文)引起的法律结果完全由本人承担。毕业设

2、计(论文)成果归武汉工程大学邮电与信息工程学院所有。特此声明。 作者专业: 作者学号: 作者签名: _年_月_日摘要电子邮件来源于专有电子邮件系统。早在Internet流行以前很久,电子邮件就已经存在了,是在主机-多终端的主从式体系中从一台计算机终端向另一计算机终端传送文本信息的相对简单的方法而发展起来的。经历了漫长的过程之后,它现在已经演变成为一个更加复杂并丰富得多的系统,可以传送声音、图片、图象、文档等多媒体信息,以至于如数据库或帐目报告等更加专业化的文件都可以电子邮件附件的形式在网上分发。但毫无疑问的是,Internet扩展了其应用的范围。过去只能在其局域网上进行交谈的公司现在可以通过网

3、络与他们的客户、竞争伙伴和世界上的任何人进行通信和交流。一旦某个组织的电子邮件系统运行在支持TCP/IP协议的网络上或具有支持两个Internet邮件服务协议SMTP(简单邮件传输协议)和POP(邮局协议)之一的Internet网关,它的邮件用户就能够连接到任何具有相似连接的电子邮件地址上了,并且不论其电子邮件帐户在何处。本论文第1章首先提出了基于C#的电子邮件软件设计的必要性;第2章介绍了利用C#程序设计语言实现电子邮件软件所涉及到的相关知识;第3章对整个软件的设计提出了基本的思路,并讨论了其中存在的相关问题;第4章对电子邮件软件的具体实现提出了具体方案;第5章对全文进行总结与展望。关键词:

4、SMTP;POP3;电子邮件;网络AbstractElectronic mail is based from the proprietary E-mail systems. Before the Internet popularity, E-mail has existed, it is developed from the hosts - the master-slave type system, transmitting text messages from a computer to another terminals in a more simple way.After a long

5、time, it has changed into a much more complex and richer system in nowadays. It can transmit sounds, pictures, images, documents and other multi-media information, even can distribute the information like database or account reports with attachments. But, there is no doubt that the Internet expanded

6、 its application scope. Those companies which just communicated in local area in old days, now can keep in touch with their clients, competitive partners or anyone else in the world nowadays. Once a organizations E-mail system is running on the support of TCP/IP protocol or SMTP which supports the i

7、nternet gateway for two Internet mail service agreement or POP. Its email users can connect to any similar email address, no matter where is the email accounts. In this paper, chapter 1 introduces: based on the c#, design an email software is necessary; Chapter 2 introduces using c # programming lan

8、guage implementation email software involves knowledge; Chapter 3 puts forward the basic ideas of the software design, and discusses the problems that exist among them; Chapter 4 provides a complete solution to email server design; Chapter 5 carries on the summary and the prospect of full text.Key W

9、ords:Internet; SMTP;POP3;E-mail目 录第1章 绪论11.1电子邮件软件发展现状及趋势11.2C#的特性21.2.1 C#语言21.2.2 C#应用程序21.3本论文的研究内容3第2章 电子邮件软件设计与实现的相关知识分析42.1基于TCP/IP的通信技术研究42.2电子邮件客户端分析52.3电子邮件服务器分析52.3.1 SMTP协议概述72.3.2 POP3协议概述82.4 邮件系统原理概述8第3章 电子邮件软件的总体设计133.1系统总体设计133.1.1性能设计133.1.2系统总体框架143.2客户端的设计163.2.1功能设计163.2.2流程图173.

10、3服务器的设计193.3.1结构设计193.3.2功能设计203.3.3流程图203.4建立网络连接233.5系统开发环境及运行环境25第4章 电子邮件软件的具体实现264.1电子邮件软件工作原理264.2主界面274.3 账户管理284.4 新建邮件294.5 接收/发送邮件30第5章 总结与展望31参考文献32致谢33附录1 主要英文缩写语对照表34附录2 主要源程序35第1章 绪论电子邮件是一种十分重要的Internet网络应用。用户只要能连接Internet,就可以通过电子邮件进行通信,交换信息。要使用电子邮件服务,需要邮件服务器软件和邮件客户端软件两方面的紧密配合。收邮件使用POP3

11、服务器,发邮件使用SMTP服务器,邮件服务器一般由邮件服务商提供。客户通邮件客户端软件与邮件服务器进行通信,进行邮件的接收和发送1。1.1电子邮件软件发展现状及趋势电子邮件通过Intenret通信实现传统邮局的信件收发功能。与传统的信件传递相比,电子邮件传递信息更加快捷、高效、廉价,可以在几分钟之内将信件传递到世界任何网络用户的邮箱中,而且由于邮箱密码、邮件加密等技术的应用,电子邮件比传统邮件更安全可靠。因此在短短三十年的发展后,电子邮件已成为Internet上不可缺少的现代通信工具。据统计,四分之三以上的用户上网的主要目的是收发邮件,每天有十数亿封电子邮件在全球传递。电子邮件系统在Inten

12、ret使用之前就已经出现。1971年RayTomlinson首次在邮件地址中使用符号。但由于当时使用Arpanet网络的用户较少,且受网络速度的限制,用户只能发送简短的文本信息,电子邮件系统并没有收到足够的重视。直到1980年代中期,随着互联网的建立和个人电脑的兴起,电子邮件系统才得到发展,1988年由史蒂夫道纳尔编写的程序Euroda,使电子邮件系统成为主流应用。随着 1990年代Intenret浏览器的诞生,网络用户迅速增加并且出现了提供免费邮件的电子邮件系统,电子邮件被广泛使用.再后来基于Web的电子邮件系统的产生,允许用户在任何一台连接Internet网络的电脑上维护和使用邮箱,电子邮

13、件系统进入了快速发展阶段。当前,电子邮件的用户己经从科学和教育行业发展到了普通家庭用户,几乎每个Internet的用户都具有一个或多个电子邮箱,而且电子邮件传递的信息也从普通文本信息发展到包含声音、图像在内的多媒体信息2。1.2C#的特性C#是一种简单的、现代的、面向对象的、类型安全的编程语言。它不但提供了面向对象编程的技术,而且还提供了面向组件编程的支持技术。Visual C# 2008提供了许多方便开发的工具,如高级代码器方便的用户界面设计器、集成调试器等。开发人员使用这些工具,可以更容易在C#语言3.0版和.NET Framework 3.5版的基础上开发应用程序。1.2.1 C#语言C

14、#是一种Microsoft公司设计的、简洁的、类型安全的、面向对象的语言。它松散地基于C/C+语言,并且有很多方面和Java语言类似。开发人员可以使用C#语言来构建在.NET Framework上运行各种安全、可靠的应用程序3。C#语法表现力强、简单易学、容易上手。通常地,开发人员通过很短时间的学习,就能够使用C#语言开发高效的程序。C#语法提供了许多强大的功能,如可为空置(null)的值类型、枚举、lambda表达式、直接内存访问等。C#支持泛型类型和方法,进而提供了更为出色的类型安全和性能。特别地,C#还提供了迭代器、语言集成查询(LINQ)表达式等高级功能,使得开发人员可以在C#代码中创

15、建具有查询功能的程序代码。当然。C#也是一种面向对象的语言,它也支持封装、继承和多态性的概念。C#程序所有的变量和方法,都封装在类定义中,甚至包括Main()方法(应用程序的入口点)。通过继承、多态性等技术,类可以从另一个类派生而来,同时也可以实现任意数量的接口。1.2.2 C#应用程序C#应用程序包括两种应用程序:控制台(Console)应用程序和Windows窗体应用程序。控制台应用程序的界面往往比较简单,而Windows窗体应用程序能够提供丰富的图形界面4。1.控制台应用程序简单的控制台应用程序通常仅仅由一个类组成,且该类包括一个名称为Main(stringargs)的方法。对于大多数

16、控制台应用程序而言,执行流从一条语句前进到下一条语句,直至运行到程序结尾处,应用程序终止。控制台应用程序运行之后,往往会显示一个Windows的控制台对话框。用户可以输入参数或命令。当然,控制台应用程序也可以接收由某些对象产生的键盘事件和系统事件驱动5。2.Windows窗体应用程序Windows窗体应用程序是基于Microsoft Windows平台之上一种经典的可视化应用程序,它特别适合于包含丰富图形用户界面的应用程序。开发人员可以创建大量的Windows窗体,这些窗体可以响应用户的操作。其实,Windows窗体在响应用户的操作时会触发事先定义的事件,然后系统会调用应用程序中称为事件处理程

17、序的特殊方法。可以说,Windows窗体应用程序执行所有操作几乎都是由事件处理程序启动的。如果未发生事件,那么该应用程序不执行任何操作6。1.3本论文的研究内容当前流行的各大邮件客户端软件的除了最主要的收发信件之外,功能越来越复杂,但是人们平常真正用到的功能很少,很多功能尤其对于那些计算机知识相对缺乏的人来说,更加显得太过于华丽而不太实用。有鉴于此,在了解SMTP和POP3协议的基础上,从概要设计到具体设计,利用C#编程语言,把握整体框架,逐步求精地实现了这个各种功能相对简单实用的电子邮件软件,该软件具备了基本邮件收发功能,并有所创新,对于不必要的功能也有所简化。第2章 电子邮件软件设计与实现

18、的相关知识分析2.1基于TCP/IP的通信技术研究互联网是一个庞大而复杂的系统。对这种系统人们通常使用“分而治之”的方法,即把一个大问题分成若干个小问题进行设计,并将各部分有机的结合起来,实现对整个系统的设计。按照这一思想对网络系统进行设计,将它的软件分为若干层,每层负责不同的通信功能。每一层好像一个“黑匣子”,它的内部处理过程对于其他层是透明的,相邻层之间使用接口联系起来。TCP/IP(传输控制协议/网间协议)是一种网络通信协议,它规范了网络上的所有通信设备之间的数据格式以及传送方式。TCP/IP是Internet的基础协议,它规定了Internet数据传输和网络寻址的标准。TCP/IP中使

19、用四层模型对网络进行描述,将网络由上而下分为应用层、传输层、网络层和数据链路层,具体情况见图2.1所示7。应用层传输层网络层数据链路层数据链路层网络层传输层应用层物理网络主机A主机B图2.1 TCP/IP四层网络模型应用层是所有基于TCP/IP协议簇的应用协议的统称。传输层负责分割、组合数据、实现端到端的逻辑连接。网络层负责管理网络地址,定位设备,决定路由。数据链路层为网络层提供数据传送服务。TCP是一种可靠的面向连接的传送服务。它在传送数据时是分段进行的,主机交换数据必须建立一个会话,又称虚拟连接。在数据发送过程中,为每一个TCP传输的数据段指定顺序号。通过发送应答的方式,来确认对方主机是否

20、收到数据,以保证其传输的可靠性。对于传输的每一个数据段,接收主机必须在指定的时间返回收到确认;如果发送主机未收到接收主机的收到确认,数据段就会被重新发送;如果收到的数据包损坏,接收主机会舍弃它,因为确认未被发送,发送者会重新发送分段8。2.2电子邮件客户端分析邮件客户端软件的作用是来收发电子邮件的,它是电子邮件产生初期的邮件服务软件,如今主要被商务人士广泛使用,普通百姓一般使用Web邮件。Web邮件,也就是我们平时登陆网页上的邮箱,是后来才发展起来的。实际上收发Web邮件时,我们首先将客户端软件临时下载到我们的电脑上,然后才能够收发邮件。而邮件客户端软件则是事先安装到电脑上,打开软件即可以收发

21、邮件,不需要登陆网页,也不需要临时下载东西,所有收发邮件的速度要快于Web邮件9。目前邮件客户端软件主要有Windows自带的Outlook Express,还有Foxmail。2.3电子邮件服务器分析电子邮件服务器是处理邮件交换的软硬件设施的总称,包括电子邮件程序、电子邮件箱等。它是为用户提供全由E-mail服务的电子邮件系统,人们通过访问服务器实现邮件的交换。服务器程序通常不能由用户启动,而是一直在系统中运行,它一方面负责把本机器上发出的E-mail发送出去,另一方面负责接收其他主机发过来的E-mail,并把各种电子邮件分发给每个用户10。 电子邮件程序是计算机网络主机上运行的一种应用程序

22、,它是操作和管理电子邮件的系统。在你处理电子邮件时,需要选择一种供你使用的电子邮件程序。由于网络环境的多样性,各种网络环境的操作系统与软件系统也不相同,因此电子邮件系统也不完全一样。当Alice给Bob发一封普通的邮政信件时,她把这封信装入一个信封里,在信封上写明Bob的地址和自己的回信地址,然后投入邮箱;邮政业务在递送这封信的过程中,也会把表明时间和地点的邮戳盖在信封上。类似地,当电子邮件消息从一个人传送到另一个人时,在信体之前会有一个含有这些外围信息的信头。这些信息由一系列在RFC 822中定义的邮件消息头部及其值构成。邮件消息中构成信头的各个头部和信体之间以一个空行(即CRLF)分割。R

23、FC 822详细说明了各个邮件消息头部的格式和含义。邮件消息的每个头部都是直观可读的文本,由一个后跟冒号的关键字和相应的值构成。这些头部有些是必须的,有些则是可选的。每个信头必须有一个From:头部和一个To:头部。还可以有一个Subject:头部和其他头部。这些头部和前面讨论的SMTP命令不是一回事:SMTP命令是SMTP握手协议的一部分,邮件消息头部则属于邮件消息的一部分。下面是一个典型的电子邮件信头:From: aliceTo: bobcsu.eduSubject: this is a letter信头之后空一行就是信体。SMTP RFC822要求每个邮件消息的信体以单个点号构成的一行做

24、结束标记,换用ASCII字符形式,就是每个邮件消息的信体必须以“CRLF.CRLF”结尾,其中CR和LF分别代表回车符和换行符。这种方式下,当从同一个SMTP客户接收一系列邮件消息时,SMTP服务器可以通过在字节流中搜索“CRLF.CRLF”来分割每个消息。 RFC 822中说明的邮件消息头部尽管足以满足发送普通ASCII文本邮件的要求,但是在多媒体消息(例如,包含图像、音频或视频数据的消息)的描述和非ASCII文本格式(例如,非英语国家使用的文字)的承载上,却显然不够,例如,若信体是JPEG图像的二进制数据,那么这些二进制数据字节流中可能出现“CRLF.CRLF”模式。这将导致SMTP服务器

25、误认为当前邮件消息已结束。为避免这样的问题,二进制数据应以某种方式编码成ASCII文本,保证其中不存在特定的ASCII字符(包括点号)。要发送非ASCII文本的邮件消息,必须由发送者的用户代理在其中增添额外的头部。RFC 2045和RFC 2046定义了这些额外的头部,它们是针对RFC 822的多用途因特网邮件扩展(Multipurpose Internet Mail Extensions, 简称MIME)。支持多媒体的两个关键MIME头部是Content-Type:和Content-Tansfer- Encoding:。Content-Type:头部允许接收用户代理对邮件消息采取合适的行动。

26、例如,通过指出信体内容为一个JPEG图像,接收用户代理可以把信件定向到某个JPEG解压缩例程。为确保SMTP正常工作,非ASCII文本消息必须预先编码成ASCII文本格式。Content-Tansfer-Encoding:头部用于告知接收用户代理信体已被编码成ASCII格式,并指出具体编码方式。这样,当某个用户代理收到一个包含这两个头部的邮件消息时,它首先使用Content-Tansfer-Encoding:头部的值把信体转换成原始的非ASCII文本形式,再使用Content-Type:头部的值确定自己应该对信体采取什么行动11。2.3.1 SMTP协议概述简单邮件传输协议(SMTP)的目标是

27、可靠高效地传送邮件,它独立于传送子系统而且仅要求一条可以保证传送数据单元顺序的通道。SMTP的一个重要特点是它能够在传送中接力传送邮件,传送服务提供了进程间通信环境(IPCE),此环境可以包括一个网络,几个网络或一个网络的子网。理解到传送系统(或IPCE)不是一对一的是很重要的。进程可能直接和其它进程通过已知的IPCE通信。邮件是一个应用程序或进程间通信。邮件可以通过连接在不同IPCE上的进程跨网络进行邮件传送。更特别的是,邮件可以通过不同网络上的主机接力式传送。它是Internet上传输电子邮件的标准协议,用于提交和传送电子邮件,规定了主机之间传输电子邮件的标准交换格式和邮件在链路层上的传输

28、机制12。SMTP通常用于把电子邮件从客户机传输到服务器,以及从某一服务器传输到另一个服务器。2.3.2 POP3协议概述POP3(Post Office Protocol 3)即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。它是Internet上传输电子邮件的第一个标准协议,也是一个离线协议。它提供信息存储功能,负责为用户

29、保存收到的电子邮件,并且从邮件服务器上下载取回这些邮件。POP3为客户机提供了发送信任状(用户名和口令),这样就可以规范对电子邮件的访问。IMAP4,Internet Message Access Protocol,网际消息访问协议,目前是第4版。当电子邮件客户机软件在笔记本计算机上运行时(通过慢速的电话线访问互联网和电子邮件),IMAP4比POP3更为适用。使用IMAP时,用户可以有选择地下载电子邮件,甚至只是下载部分邮件。因此,IMAP比POP更加复杂。MIME,多用途的网际邮件扩展Internet上的SMTP传输机制是以7位二进制编码的ASCII码为基础的,适合传送文本邮件。而声音、图象

30、、中文等使用8为二进制编码的电子邮件需要进行ASCII转换(编码)才能够在Internet上正确传输。MIME增强了在RFC 822中定义的电子邮件报文的能力,允许传输二进制数据。MIME编码技术用于将数据从8位都使用的格式转换成数据使用7位的ASCII码格式13。2.4 邮件系统原理概述假设Alice想给Bob发送一个JPEG图像,她为此调用自己的用户代理,给出Bob的电子邮件地址和邮件消息的主题,并把这个JPEG图像插入这个邮件消息的信体中(这个图像有可能是作为该邮件消息的“附件”插入的,具体取决于Alice所用的用户代理)。Alice填写完邮件消息后让用户代理把它发送出去。Alice的用

31、户代理生成一个大体如下的MIME消息:From: aliceTo: bobcsu.eduSubject: picture of mineMIME-Version: 1.0Content-Transfer-Encoding: base64Content-Type: image/jpeg.base64编码数据.base64编码数据.从这个例子看到,Alice的用户代理采用base64编码格式对这个JPEG图像进行编码,而base64是在MIME中标准化的用于转换成某种可接受的7位ASCII格式的编码技术之一(定义在RFC 2045中)。Content-Type:头部遵循MIME规范(定义在RFC

32、2046中),其格式为:Content-Type: type/subtype; parameters。其中parameters(以及其前面的分号)是可选的。通过在Content-Type:头部给出媒体类型(type)名和子类型(subtype)名来说明MIME消息信体中数据的性质。类型名和子类型名之后的其余部分是一组参数。类型名用于声明数据的一般类型,子类型名用于指明这类数据中的某种具体格式。参数是对于类型的修饰说明,取值取决于类型和子类型本身,不影响内容性质的指定。MIME是按照可扩展目标仔细地设计的,并预期媒体类型/子类型以及它们的相关参数会随时间显著增长。为确保以有秩序的文档完备公开的方

33、式开发这些类型/子类型,MIME建立了一套注册程式,把因特网分配数值权威(Internet Asigned Numbers Authority, 简称IANA)作为MIME各个可扩展域的中心注册处。RFC 2048具体说明了这些可扩展域的注册程式。每个MIME类型关联一组子类型,其数量在逐年增长。一些主要类型如下:(1) text:text类型用于向接收者的用户代理指出消息体为文本。该类型的一个普遍使用的类型/子类型对为text/plain。子类型plain指定不含任何格式定义信息的普通文本。plain文本不加任何解释地按照原样显示,不需要特殊的软件,但要求支持给定的字符集。在实际的邮件消息中

34、经常能看到值对为text/plain;charset = gb2312或text/plain; charset = “ISO-8859-1”的Content-Type:头部,其中的参数指出用于产生相应消息的字符集。另一个普遍使用的类型/子类型对是text/html。子类型html指示接收用户代理解释嵌入在消息体中的html标记,从而像Web页面那样显示信件内容,其中有可能包含各种字体的文本、超链接、Java小应用程序等等。(2) image:image类型用于向接收用户代理指出消息体为图像。该类型较为流行的两个类型/子类型对为image/gif和image/jpeg,接收用户代理碰到这样的类型

35、时,就知道该把消息体作为GIF图像或JPEG图像解码并显示。(3) audio:audio类型需要音频输出设备(例如扬声器或电话)来表达内容。这类型中常见的已标准化子类型包括basic(基本8位u-law编码)和32kadpcm(RFC 1911中定义的一种32Kbps格式)。(4) video:video类型的子类型包括mpeg和quicktime。(5) application:application类型适用于不适合归为其它类别的数据,通常用在必须由某个应用程序预先处理才能为用户所见或所用的数据上。例如,当用户在某个电子邮件消息中附带一个微软word文档时,其用户代理一般把它的类型子类型对

36、指定为application/msword;这将导致接收用户代理启动微软word应用程序,并把该MIME消息的信体传递给它处理。这类型的一个重要子类型是octet-stream,它用于指示信体含有任意的二进制数据。收到内容类型为application/octet-stream的邮件消息后,接收用户代理会提示用户是否把信体保存到硬盘中,以便稍后处理。(6) MultiPart:MultiPart是MIME类型中一个相当重要的类型。当一个多媒体消息含有不止一个对象时(例如多个图像或ASCII文本与图像共存),其Content-Type:头部的值通常为multipart/mixed。这头部向接收用户

37、代理指出本消息中含有多个对象。在多个对象共处同一个邮件消息中的情况下,通过在每个对象之间放置边界字符串,并在每个对象之前定义Content-Type:和Content-Transfer-Encoding:头部,接收用户代理可以确定:每个对象的起止位置;每个非ASCII文本对象的传送编码方式;每个对象的内容类型。为便于理解multipart/mixed,举例如下:假设Alice想给Bob发送一个邮件消息,其内容为一些ASCII文本,后跟一个JPEG图像,再跟一些ASCII文本。Alice使用自己的用户代理编辑文本并附上图像后,该用户代理生成一个如下的邮件消息:From: aliceTo: bob

38、csu.eduMIME-Version: 1.0Content-type: multipart/mixed; Boundary=StartOfNextPart-StartOfNextPartDear bob, Please look at the picture-StartOfNextPartContent-Transfer-Encoding: base64Content-type: image/jpeg.base64编码的数据. .base64编码的数据.-StartOfNextPartthere is some acsii letter here从中可以看出,Content-type:头部

39、的Boundary参数用于指定分隔各个部分的边界字符串。在邮件消息体中,该分隔字符串以两个短划线开头,以CRLF结尾。一个电子邮件消息由多个部件构成。信体是邮件消息的核心,它是发送者发送给接收者的真正数据。对于多部分邮件消息来说,其信体本身由多个部分组成,而每个部分又有一个或多个说明其数据性质的头部。信体之前是一个空行和由多个邮件消息头部组成的信头。这些头部既包括RFC 822头部,例如From:、To:和subject:,也包括MIME头部,例如Content-type:和Content-Transfer-Encoding:。除此之外,还有由SMTP接收服务器插到每个邮件消息项端的Recei

40、ved:头部,它给出了发出本消息的SMTP服务器的主机名(“from”)、收取本消息的SMTP服务器的主机名(“by”)以及接收服务器收取本消息的时间。因此,作为接收者的用户看到的邮件消息大致如下:Received: from by csu.edu; 18 Oct 2007 09:53:37 GMTFrom: aliceTo: bobcsu.eduMIME-Version: 1.0Content-type: multipart/mixed; Boundary=StartOfNextPart-StartOfNextPartDear bob, Please look at the picture-

41、StartOfNextPartContent-Transfer-Encoding: base64Content-type: image/jpeg.base64编码的数据. .base64编码的数据.-StartOfNextPartthere is some acsii letter here有时候,单个邮件消息会有多个Received:头部,有的还会有一个较复杂的Return-path:头部。这是因为邮件消息在从发送者的主机到接收者的主机的传送过程中,可能会被转发到不止一个SMTP服务器。例如,如果Bob指示他在主机csu.edu上的邮件服务器把他的所有邮件转发到主机,那么他通过其用户代理看到

42、的邮件消息可能以大体如下的两行开头:Received: from csu.edu by ; 18 Oct 2007 09:55:37 GMTReceived: from by csu.edu; 18 Oct 2007 09:53:37 GMT这些头部给接收用户代理提供了相应邮件消息访问过的SMTP服务器及访问时间的踪迹。SMTP规范所在的RFC 822详细定义丁Received:头部的语法。第3章 电子邮件软件的总体设计3.1系统总体设计利用C#实现电子邮件的接收和发送,电子邮件软件共分为服务器端和客户端两部分,服务器端程序主要负责侦听客户端发来的邮件,客户端需登录到服务端才可以实现正常的接收

43、和发送邮件功能14。3.1.1性能设计(1) 稳定性软件最重要的性能就是它的稳定性。本软件在Windows操作系统下使用C#软件进行编写,保证的平台的稳定性。客户端对邮件的所有处理都是在网络连接建立之前进行的,在发送邮件时只是简单的从文件中读取并发送,无需对邮件进行任何处理。这样简化了发送过程,缩短了网络连接时间,避免了发送邮件时要解决邮件格式和内容错误的问题,减少了网络出错的机率。而服务器将收取到的邮件存储在本地硬盘临时文件夹中,只有在邮件投递到用户的邮箱、成功转发或在指定次数内无法转发的情况下才删除,这就保证了邮件不会丢失。(2) 兼容性SMTP电子邮件系统应该与目前广泛使用的各种客户端软

44、件及邮件服务器系统相兼容。具体的要求是:SMTP 客户端发送的邮件应该可以被其他邮件客户端软件解析并正确显示;SMTP客户端可以向现在被广泛使用的邮件服务器发送邮件;SMTP服务器可以接收任何客户端发送的邮件;SMTP服务器能够将邮件正确投递或者将收件人不是本地用户的邮件转发给目的服务器。(3)自主设计和开发在 SMTP 电子邮件系统的开发过程中,自主设计并实现系统的主要部分。只有部分模块的实现细节,如从注册表中读取网络信息门、取得文件的完全地址等,借鉴了他人的方法,系统的重要程序结构设计和代码编写都是自己完成。由于对系统了解深刻,十分方便对系统进行管理和调试。而且由于系统是自主开发的,教研室

45、的其他人也可以以本系统为基础作进一步的开发和研究。(4)易于维护及修改SMTP电子邮件系统除了客户端的界面部分使用了MFC编程外,其余所有程序都是使用C#编写并采用了模块化设计思路。每个功能设计成独立的模块进行编写程序,模块之间关联性很小,系统的整体设计简洁、清晰。这使得软件有良好的可读性和可移植性,特别是方便了以后对软件进行修改、维护和升级,即使要改变或增减系统的15。3.1.2系统总体框架电子邮件系统可分为客户端和服务器两部分,根据邮件在传输时使用的协议它们又分别可以分为SMTP和POP3。首先由SMTP客户端编写并发送邮件;SMTP服务器接收到邮件后根据收件人是否是本地用户进行分发。如果

46、是本地用户,则将邮件直接投递到用户邮箱中;如果是远程邮箱,则将邮件转发到收件人所在的服务器上;最后收件人通过POP3客户端经过POP3服务器,把邮件从服务器上的邮箱中取到本地主机上进行解析和显示。电子邮件服务器的用户名、密码以及其它参数(如每个邮箱的最大存储空间、每封信的大小等)都是通过管理服务器进行管理的16。1.电子邮件系统的整体框架结构见图3.1所示POP3服务器转发服务器SMTP接收服务器用户邮箱SMTP客户端POP3客户端管理服务器其他电子邮件服务器管理员图3.1 电子邮件系统整体框架图2.软件的总体架构见图3.2所示主要功能选择用户主界面发送邮件类 接收邮件类图3.2 软件架构图3.系统总体见图3.3所示用户新建账号发送邮件接收邮件纯文本邮件带附件邮件图3.3 系统总体图3.2客户端的设计电子邮件与普通邮件有类似的地方,发信者注明收件人的姓名与地址(即邮件地址),发送方服务器把邮件传到收件方服务器,收件方服务器再把邮件发到收件人的邮箱中17。3.2.1功能设计电子邮件客户端肩负着电子邮件系统与用户交互邮件信息的重任,它是电子邮件系统中MU人(用户代理)部分。完整的电子邮件客户端应至少具备对邮件进行编写、传输、收取、阅读这几个基本功能。由

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号