通信工程毕业设计(论文)-电子邮件软件的设计与实现.doc_第1页
通信工程毕业设计(论文)-电子邮件软件的设计与实现.doc_第2页
通信工程毕业设计(论文)-电子邮件软件的设计与实现.doc_第3页
通信工程毕业设计(论文)-电子邮件软件的设计与实现.doc_第4页
通信工程毕业设计(论文)-电子邮件软件的设计与实现.doc_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉工程大学邮电与信息工程学院武汉工程大学邮电与信息工程学院 毕业设计(论文)毕业设计(论文) 电子邮件软件的设计与实现电子邮件软件的设计与实现 Design and Realization of Email Software 学生姓名 朱祺朱祺 学 号 7403130329 专业班级 通信工程通信工程 0703 班班 指导教师 程雯程雯 2011 年年 5 月月 武汉工程大学邮电与信息工程学院毕业设计(论文) 作者声明作者声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果,除了文中特别加以标注的地方外,没有任何剽窃、抄袭、造假等违反学术 道德、学术规范的行为,也没有侵犯任何其他人或组织的科研成果及专利。与我 一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了 谢意。如本毕业设计(论文)引起的法律结果完全由本人承担。 毕业设计(论文)成果归武汉工程大学邮电与信息工程学院所有。 特此声明。 作者专业: 作者学号: 作者签名: _年_月_日 武汉工程大学邮电与信息工程学院毕业设计(论文) 摘要摘要 电子邮件来源于专有电子邮件系统。早在 Internet 流行以前很久,电子邮件 就已经存在了,是在主机-多终端的主从式体系中从一台计算机终端向另一计算机 终端传送文本信息的相对简单的方法而发展起来的。 经历了漫长的过程之后,它现在已经演变成为一个更加复杂并丰富得多的系 统,可以传送声音、图片、图象、文档等多媒体信息,以至于如数据库或帐目报 告等更加专业化的文件都可以电子邮件附件的形式在网上分发。 但毫无疑问的是,Internet 扩展了其应用的范围。过去只能在其局域网上进行 交谈的公司现在可以通过网络与他们的客户、竞争伙伴和世界上的任何人进行通 信和交流。一旦某个组织的电子邮件系统运行在支持 TCP/IP 协议的网络上或具 有支持两个 Internet 邮件服务协议 SMTP(简单邮件传输协议)和 POP(邮局协议)之 一的 Internet 网关,它的邮件用户就能够连接到任何具有相似连接的电子邮件地 址上了,并且不论其电子邮件帐户在何处。 本论文第 1 章首先提出了基于 C#的电子邮件软件设计的必要性;第 2 章介绍 了利用 C#程序设计语言实现电子邮件软件所涉及到的相关知识;第 3 章对整个软 件的设计提出了基本的思路,并讨论了其中存在的相关问题;第 4 章对电子邮件 软件的具体实现提出了具体方案;第 5 章对全文进行总结与展望。 关键词关键词:SMTP;POP3;电子邮件;网络 武汉工程大学邮电与信息工程学院毕业设计(论文) Abstract Electronic 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 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 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 internet 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 language 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 Words:Internet; SMTP;POP3;E-mail 武汉工程大学邮电与信息工程学院毕业设计(论文) 目目 录录 第第 1 章章 绪论绪论.1 1.1 电子邮件软件发展现状及趋势.1 1.2C#的特性.2 1.2.1 C#语言.2 1.2.2 C#应用程序.2 1.3 本论文的研究内容.3 第第 2 章章 电子邮件软件设计与实现的相关知识分析电子邮件软件设计与实现的相关知识分析.4 2.1 基于 TCP/IP 的通信技术研究 .4 2.2 电子邮件客户端分析.5 2.3 电子邮件服务器分析.5 2.3.1 SMTP 协议概述.7 2.3.2 POP3 协议概述 .8 2.4 邮件系统原理概述.8 第第 3 章章 电子邮件软件的总体设计电子邮件软件的总体设计.13 3.1 系统总体设计.13 3.1.1 性能设计.13 3.1.2 系统总体框架.14 3.2 客户端的设计.16 3.2.1 功能设计.16 3.2.2 流程图.17 3.3 服务器的设计.19 3.3.1 结构设计.19 3.3.2 功能设计.20 3.3.3 流程图.20 3.4 建立网络连接.23 3.5 系统开发环境及运行环境.25 武汉工程大学邮电与信息工程学院毕业设计(论文) 第第 4 章章 电子邮件软件的具体实现电子邮件软件的具体实现.26 4.1 电子邮件软件工作原理.26 4.2 主界面.27 4.3 账户管理.28 4.4 新建邮件.29 4.5 接收/发送邮件.30 第第 5 章章 总结与展望总结与展望.31 参考文献参考文献.32 致谢致谢.33 附录附录 1 主要英文缩写语对照表主要英文缩写语对照表.34 附录附录 2 主要源程序主要源程序.35 武汉工程大学邮电与信息工程学院毕业设计(论文) 1 第第 1 章章 绪论绪论 电子邮件是一种十分重要的 Internet 网络应用。用户只要能连接 Internet,就 可以通过电子邮件进行通信,交换信息。要使用电子邮件服务,需要邮件服务器 软件和邮件客户端软件两方面的紧密配合。收邮件使用 POP3 服务器,发邮件使 用 SMTP 服务器,邮件服务器一般由邮件服务商提供。客户通邮件客户端软件与 邮件服务器进行通信,进行邮件的接收和发送1。 1.1 电子邮件软件发展现状及趋势电子邮件软件发展现状及趋势 电子邮件通过 Intenret 通信实现传统邮局的信件收发功能。与传统的信件传 递相比,电子邮件传递信息更加快捷、高效、廉价,可以在几分钟之内将信件传 递到世界任何网络用户的邮箱中,而且由于邮箱密码、邮件加密等技术的应用, 电子邮件比传统邮件更安全可靠。因此在短短三十年的发展后,电子邮件已成为 Internet 上不可缺少的现代通信工具。据统计,四分之三以上的用户上网的主要目 的是收发邮件,每天有十数亿封电子邮件在全球传递。 电子邮件系统在 Intenret 使用之前就已经出现。1971 年 RayTomlinson 首次在 邮件地址中使用符号。但由于当时使用 Arpanet 网络的用户较少,且受网络速 度的限制,用户只能发送简短的文本信息,电子邮件系统并没有收到足够的重视。 直到 1980 年代中期,随着互联网的建立和个人电脑的兴起,电子邮件系统才得 到发展,1988 年由史蒂夫道纳尔编写的程序 Euroda,使电子邮件系统成为主流 应用。随着 1990 年代 Intenret 浏览器的诞生,网络用户迅速增加并且出现了提供 免费邮件的电子邮件系统,电子邮件被广泛使用.再后来基于 Web 的电子邮件系 统的产生,允许用户在任何一台连接 Internet 网络的电脑上维护和使用邮箱,电 子邮件系统进入了快速发展阶段。当前,电子邮件的用户己经从科学和教育行业 发展到了普通家庭用户,几乎每个 Internet 的用户都具有一个或多个电子邮箱, 而且电子邮件传递的信息也从普通文本信息发展到包含声音、图像在内的多媒体 信息2。 武汉工程大学邮电与信息工程学院毕业设计(论文) 2 1.2C#的特的特性性 C#是一种简单的、现代的、面向对象的、类型安全的编程语言。它不但提供 了面向对象编程的技术,而且还提供了面向组件编程的支持技术。Visual C# 2008 提供了许多方便开发的工具,如高级代码器方便的用户界面设计器、集成调 试器等。开发人员使用这些工具,可以更容易在 C#语言 3.0 版和.NET Framework 3.5 版的基础上开发应用程序。 1.2.1 C#语言语言 C#是一种 Microsoft 公司设计的、简洁的、类型安全的、面向对象的语言。 它松散地基于 C/C+语言,并且有很多方面和 Java 语言类似。开发人员可以使用 C#语言来构建在.NET Framework 上运行各种安全、可靠的应用程序3。 C#语法表现力强、简单易学、容易上手。通常地,开发人员通过很短时间的 学习,就能够使用 C#语言开发高效的程序。C#语法提供了许多强大的功能,如 可为空置(null)的值类型、枚举、lambda 表达式、直接内存访问等。C#支持泛 型类型和方法,进而提供了更为出色的类型安全和性能。特别地,C#还提供了迭 代器、语言集成查询(LINQ)表达式等高级功能,使得开发人员可以在 C#代码 中创建具有查询功能的程序代码。 当然。C#也是一种面向对象的语言,它也支持封装、继承和多态性的概念。 C#程序所有的变量和方法,都封装在类定义中,甚至包括 Main()方法(应用 程序的入口点) 。通过继承、多态性等技术,类可以从另一个类派生而来,同时 也可以实现任意数量的接口。 1.2.2 C#应用程序应用程序 C#应用程序包括两种应用程序:控制台(Console)应用程序和 Windows 窗 体应用程序。控制台应用程序的界面往往比较简单,而 Windows 窗体应用程序能 够提供丰富的图形界面4。 武汉工程大学邮电与信息工程学院毕业设计(论文) 3 1.控制台应用程序控制台应用程序 简单的控制台应用程序通常仅仅由一个类组成,且该类包括一个名称为 Main(stringargs)的方法。对于大多数 控制台应用程序而言,执行流从一条语 句前进到下一条语句,直至运行到程序结尾处,应用程序终止。控制台应用程序 运行之后,往往会显示一个 Windows 的控制台对话框。用户可以输入参数或命令。 当然,控制台应用程序也可以接收由某些对象产生的键盘事件和系统事件驱动5。 2.Windows 窗体应用程序窗体应用程序 Windows 窗体应用程序是基于 Microsoft Windows 平台之上一种经典的可视 化应用程序,它特别适合于包含丰富图形用户界面的应用程序。开发人员可以创 建大量的 Windows 窗体,这些窗体可以响应用户的操作。其实,Windows 窗体在 响应用户的操作时会触发事先定义的事件,然后系统会调用应用程序中称为事件 处理程序的特殊方法。可以说,Windows 窗体应用程序执行所有操作几乎都是由 事件处理程序启动的。如果未发生事件,那么该应用程序不执行任何操作6。 1.3 本论文的研究内容本论文的研究内容 当前流行的各大邮件客户端软件的除了最主要的收发信件之外,功能越来越 复杂,但是人们平常真正用到的功能很少,很多功能尤其对于那些计算机知识相 对缺乏的人来说,更加显得太过于华丽而不太实用。有鉴于此,在了解 SMTP 和 POP3 协议的基础上,从概要设计到具体设计,利用 C#编程语言,把握整体框架, 逐步求精地实现了这个各种功能相对简单实用的电子邮件软件,该软件具备了基 本邮件收发功能,并有所创新,对于不必要的功能也有所简化。 武汉工程大学邮电与信息工程学院毕业设计(论文) 4 第第 2 章章 电子邮件软件设计与实现的相关知识分析电子邮件软件设计与实现的相关知识分析 2.1 基于基于 TCP/IP 的通信技术研究的通信技术研究 互联网是一个庞大而复杂的系统。对这种系统人们通常使用“分而治之”的 方法,即把一个大问题分成若干个小问题进行设计,并将各部分有机的结合起来, 实现对整个系统的设计。按照这一思想对网络系统进行设计,将它的软件分为若 干层,每层负责不同的通信功能。每一层好像一个“黑匣子” ,它的内部处理过 程对于其他层是透明的,相邻层之间使用接口联系起来。 TCP/IP(传输控制协议/网间协议)是一种网络通信协议,它规范了网络上的 所有通信设备之间的数据格式以及传送方式。TCP/IP 是 Internet 的基础协议,它 规定了 Internet 数据传输和网络寻址的标准。TCP/IP 中使用四层模型对网络进行 描述,将网络由上而下分为应用层、传输层、网络层和数据链路层,具体情况见 图 2.1 所示7。 图图 2.1 TCP/IP 四层网络模型四层网络模型 应用层 传输层 网络层 数据链路层数据链路层 网络层 传输层 应用层 物理网络 主机 A主机 B 武汉工程大学邮电与信息工程学院毕业设计(论文) 5 应用层是所有基于 TCP/IP 协议簇的应用协议的统称。传输层负责分割、组 合数据、实现端到端的逻辑连接。网络层负责管理网络地址,定位设备,决定路 由。数据链路层为网络层提供数据传送服务。 TCP 是一种可靠的面向连接的传送服务。它在传送数据时是分段进行的,主 机交换数据必须建立一个会话,又称虚拟连接。在数据发送过程中,为每一个 TCP 传输的数据段指定顺序号。通过发送应答的方式,来确认对方主机是否收到 数据,以保证其传输的可靠性。对于传输的每一个数据段,接收主机必须在指定 的时间返回收到确认;如果发送主机未收到接收主机的收到确认,数据段就会被 重新发送;如果收到的数据包损坏,接收主机会舍弃它,因为确认未被发送,发 送者会重新发送分段8。 2.2 电子邮件客户端分析电子邮件客户端分析 邮件客户端软件的作用是来收发电子邮件的,它是电子邮件产生初期的邮件 服务软件,如今主要被商务人士广泛使用,普通百姓一般使用 Web 邮件。Web 邮件,也就是我们平时登陆网页上的邮箱,是后来才发展起来的。 实际上收发 Web 邮件时,我们首先将客户端软件临时下载到我们的电脑上, 然后才能够收发邮件。而邮件客户端软件则是事先安装到电脑上,打开软件即可 以收发邮件,不需要登陆网页,也不需要临时下载东西,所有收发邮件的速度要 快于 Web 邮件9。 目前邮件客户端软件主要有 Windows 自带的 Outlook Express,还有 Foxmail。 2.3 电子邮件服务器分析电子邮件服务器分析 电子邮件服务器是处理邮件交换的软硬件设施的总称,包括电子邮件程序、 电子邮件箱等。它是为用户提供全由 E-mail 服务的电子邮件系统,人们通过访问 服务器实现邮件的交换。服务器程序通常不能由用户启动,而是一直在系统中运 行,它一方面负责把本机器上发出的 E-mail 发送出去,另一方面负责接收其他主 武汉工程大学邮电与信息工程学院毕业设计(论文) 6 机发过来的 E-mail,并把各种电子邮件分发给每个用户10。 电子邮件程序是计算机网络主机上运行的一种应用程序,它是操作和管理电 子邮件的系统。在你处理电子邮件时,需要选择一种供你使用的电子邮件程序。 由于网络环境的多样性,各种网络环境的操作系统与软件系统也不相同,因此电 子邮件系统也不完全一样。 当 Alice 给 Bob 发一封普通的邮政信件时,她把这封信装入一个信封里,在 信封上写明 Bob 的地址和自己的回信地址,然后投入邮箱;邮政业务在递送这封 信的过程中,也会把表明时间和地点的邮戳盖在信封上。类似地,当电子邮件消 息从一个人传送到另一个人时,在信体之前会有一个含有这些外围信息的信头。 这些信息由一系列在 RFC 822 中定义的邮件消息头部及其值构成。邮件消息中构 成信头的各个头部和信体之间以一个空行(即 CRLF)分割。RFC 822 详细说明了各 个邮件消息头部的格式和含义。邮件消息的每个头部都是直观可读的文本,由一 个后跟冒号的关键字和相应的值构成。这些头部有些是必须的,有些则是可选的。 每个信头必须有一个 From:头部和一个 To:头部。还可以有一个 Subject:头部和其 他头部。这些头部和前面讨论的 SMTP 命令不是一回事:SMTP 命令是 SMTP 握 手协议的一部分,邮件消息头部则属于邮件消息的一部分。 下面是一个典型的电子邮件信头: From: alice To: Subject: this is a letter 信头之后空一行就是信体。 SMTP RFC822 要求每个邮件消息的信体以单个点号构成的一行做结束标记, 换用 ASCII 字符形式,就是每个邮件消息的信体必须以“CRLF.CRLF”结尾,其中 CR 和 LF 分别代表回车符和换行符。这种方式下,当从同一个 SMTP 客户接收一 系列邮件消息时,SMTP 服务器可以通过在字节流中搜索“CRLF.CRLF”来分割每 个消息。 RFC 822 中说明的邮件消息头部尽管足以满足发送普通 ASCII 文本邮件的要 求,但是在多媒体消息(例如,包含图像、音频或视频数据的消息)的描述和非 武汉工程大学邮电与信息工程学院毕业设计(论文) 7 ASCII 文本格式(例如,非英语国家使用的文字)的承载上,却显然不够,例如, 若信体是 JPEG 图像的二进制数据,那么这些二进制数据字节流中可能出现 “CRLF.CRLF”模式。这将导致 SMTP 服务器误认为当前邮件消息已结束。为避免 这样的问题,二进制数据应以某种方式编码成 ASCII 文本,保证其中不存在特定 的 ASCII 字符(包括点号)。要发送非 ASCII 文本的邮件消息,必须由发送者的用 户代理在其中增添额外的头部。RFC 2045 和 RFC 2046 定义了这些额外的头部, 它们是针对 RFC 822 的多用途因特网邮件扩展(Multipurpose Internet Mail Extensions, 简称 MIME)。 支持多媒体的两个关键 MIME 头部是 Content-Type:和 Content-Tansfer- Encoding:。Content-Type:头部允许接收用户代理对邮件消息采取合适的行动。 例如,通过指出信体内容为一个 JPEG 图像,接收用户代理可以把信件定向到某 个 JPEG 解压缩例程。为确保 SMTP 正常工作,非 ASCII 文本消息必须预先编码 成 ASCII 文本格式。Content-Tansfer-Encoding:头部用于告知接收用户代理信体已 被编码成 ASCII 格式,并指出具体编码方式。这样,当某个用户代理收到一个包 含这两个头部的邮件消息时,它首先使用 Content-Tansfer-Encoding:头部的值把信 体转换成原始的非 ASCII 文本形式,再使用 Content-Type:头部的值确定自己应该 对信体采取什么行动11。 2.3.1 SMTP 协议概述协议概述 简单邮件传输协议(SMTP)的目标是可靠高效地传送邮件,它独立于传送 子系统而且仅要求一条可以保证传送数据单元顺序的通道。 SMTP 的一个重要特点是它能够在传送中接力传送邮件,传送服务提供了进 程间通信环境(IPCE) ,此环境可以包括一个网络,几个网络或一个网络的子网。 理解到传送系统(或 IPCE)不是一对一的是很重要的。进程可能直接和其它进程 通过已知的 IPCE 通信。邮件是一个应用程序或进程间通信。邮件可以通过连接 在不同 IPCE 上的进程跨网络进行邮件传送。更特别的是,邮件可以通过不同网 络上的主机接力式传送。 它是 Internet 上传输电子邮件的标准协议,用于提交和传送电子邮件,规定 武汉工程大学邮电与信息工程学院毕业设计(论文) 8 了主机之间传输电子邮件的标准交换格式和邮件在链路层上的传输机制12。 SMTP 通常用于把电子邮件从客户机传输到服务器,以及从某一服务器传输 到另一个服务器。 2.3.2 POP3 协议概述协议概述 POP3(Post Office Protocol 3)即邮局协议的第 3 个版本,它规定怎样将个人计算 机连接到 Internet 的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮 件的第一个离线协议标准,POP3 允许用户从服务器上把邮件存储到本地主机(即 自己的计算机)上,同时删除保存在邮件服务器上的邮件,而 POP3 服务器则是遵 循 POP3 协议的接收邮件服务器,用来接收电子邮件的。 它是 Internet 上传输电子邮件的第一个标准协议,也是一个离线协议。它提 供信息存储功能,负责为用户保存收到的电子邮件,并且从邮件服务器上下载取 回这些邮件。 POP3 为客户机提供了发送信任状(用户名和口令) ,这样就可以规范对电子 邮件的访问。 IMAP4,Internet Message Access Protocol,网际消息访问协议,目前是第 4 版。 当电子邮件客户机软件在笔记本计算机上运行时(通过慢速的电话线访问互 联网和电子邮件) ,IMAP4 比 POP3 更为适用。使用 IMAP 时,用户可以有选择 地下载电子邮件,甚至只是下载部分邮件。因此,IMAP 比 POP 更加复杂。 MIME,多用途的网际邮件扩展 Internet 上的 SMTP 传输机制是以 7 位二进制编 码的 ASCII 码为基础的,适合传送文本邮件。而声音、图象、中文等使用 8 为二 进制编码的电子邮件需要进行 ASCII 转换(编码)才能够在 Internet 上正确传输。 MIME 增强了在 RFC 822 中定义的电子邮件报文的能力,允许传输二进制数据。 MIME 编码技术用于将数据从 8 位都使用的格式转换成数据使用 7 位的 ASCII 码 格式13。 武汉工程大学邮电与信息工程学院毕业设计(论文) 9 2.4 邮件系统原理概述邮件系统原理概述 假设 Alice 想给 Bob 发送一个 JPEG 图像,她为此调用自己的用户代理,给 出 Bob 的电子邮件地址和邮件消息的主题,并把这个 JPEG 图像插入这个邮件消 息的信体中(这个图像有可能是作为该邮件消息的“附件”插入的,具体取决于 Alice 所用的用户代理)。Alice 填写完邮件消息后让用户代理把它发送出去。Alice 的用户代理生成一个大体如下的 MIME 消息: From: alice To: Subject: picture of mine MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg .base64 编码数据. .base64 编码数据. 从这个例子看到,Alice 的用户代理采用 base64 编码格式对这个 JPEG 图像 进行编码,而 base64 是在 MIME 中标准化的用于转换成某种可接受的 7 位 ASCII 格式的编码技术之一(定义在 RFC 2045 中)。 Content-Type:头部遵循 MIME 规范(定义在 RFC 2046 中),其格式为: Content-Type: type/subtype; parameters。其中 parameters(以及其前面的分号)是可选 的。通过在 Content-Type:头部给出媒体类型(type)名和子类型(subtype)名来说明 MIME 消息信体中数据的性质。类型名和子类型名之后的其余部分是一组参数。 类型名用于声明数据的一般类型,子类型名用于指明这类数据中的某种具体格式。 参数是对于类型的修饰说明,取值取决于类型和子类型本身,不影响内容性质的 指定。MIME 是按照可扩展目标仔细地设计的,并预期媒体类型/子类型以及它们 的相关参数会随时间显著增长。为确保以有秩序的文档完备公开的方式开发这些 类型/子类型,MIME 建立了一套注册程式,把因特网分配数值权威(Internet Asigned Numbers Authority, 简称 IANA)作为 MIME 各个可扩展域的中心注册处。 武汉工程大学邮电与信息工程学院毕业设计(论文) 10 RFC 2048 具体说明了这些可扩展域的注册程式。每个 MIME 类型关联一组子类 型,其数量在逐年增长。一些主要类型如下: (1) text:text 类型用于向接收者的用户代理指出消息体为文本。该类型的一个 普遍使用的类型/子类型对为 text/plain。子类型 plain 指定不含任何格式定义信息 的普通文本。plain 文本不加任何解释地按照原样显示,不需要特殊的软件,但要 求支持给定的字符集。在实际的邮件消息中经常能看到值对为 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,接收用户代理碰到这样的类型 时,就知道该把消息体作为 GIF 图像或 JPEG 图像解码并显示。 (3) audio:audio 类型需要音频输出设备(例如扬声器或电话)来表达内容。这类 型中常见的已标准化子类型包括 basic(基本 8 位 u-law 编码)和 32kadpcm(RFC 1911 中定义的一种 32Kbps 格式)。 (4) video:video 类型的子类型包括 mpeg 和 quicktime。 (5) application:application 类型适用于不适合归为其它类别的数据,通常用在 必须由某个应用程序预先处理才能为用户所见或所用的数据上。例如,当用户在 某个电子邮件消息中附带一个微软 word 文档时,其用户代理一般把它的类型子 类型对指定为 application/msword;这将导致接收用户代理启动微软 word 应用程 序,并把该 MIME 消息的信体传递给它处理。这类型的一个重要子类型是 octet- stream,它用于指示信体含有任意的二进制数据。收到内容类型为 application/octet-stream 的邮件消息后,接收用户代理会提示用户是否把信体保存 到硬盘中,以便稍后处理。 (6) MultiPart:MultiPart 是 MIME 类型中一个相当重要的类型。当一个多媒体 消息含有不止一个对象时(例如多个图像或 ASCII 文本与图像共存),其 Content- 武汉工程大学邮电与信息工程学院毕业设计(论文) 11 Type:头部的值通常为 multipart/mixed。这头部向接收用户代理指出本消息中含有 多个对象。在多个对象共处同一个邮件消息中的情况下,通过在每个对象之间放 置边界字符串,并在每个对象之前定义 Content-Type:和 Content-Transfer-Encoding:头 部,接收用户代理可以确定:每个对象的起止位置;每个非 ASCII 文本对象的传 送编码方式;每个对象的内容类型。为便于理解 multipart/mixed,举例如下:假 设 Alice 想给 Bob 发送一个邮件消息,其内容为一些 ASCII 文本,后跟一个 JPEG 图像,再跟一些 ASCII 文本。Alice 使用自己的用户代理编辑文本并附上图 像后,该用户代理生成一个如下的邮件消息: From: alice To: MIME-Version: 1.0 Content-type: multipart/mixed; Boundary=StartOfNextPart -StartOfNextPart Dear bob, Please look at the picture -StartOfNextPart Content-Transfer-Encoding: base64 Content-type: image/jpeg .base64 编码的数据. .base64 编码的数据. -StartOfNextPart there is some acsii letter here 从中可以看出,Content-type:头部的 Boundary 参数用于指定分隔各个部分的 边界字符串。在邮件消息体中,该分隔字符串以两个短划线开头,以 CRLF 结尾。 一个电子邮件消息由多个部件构成。信体是邮件消息的核心,它是发送者发 送给接收者的真正数据。对于多部分邮件消息来说,其信体本身由多个部分组成, 而每个部分又有一个或多个说明其数据性质的头部。信体之前是一个空行和由多 武汉工程大学邮电与信息工程学院毕业设计(论文) 12 个邮件消息头部组成的信头。这些头部既包括 RFC 822 头部,例如 From:、To: 和 subject:,也包括 MIME 头部,例如 Content-type:和 Content-Transfer- Encoding:。除此之外,还有由 SMTP 接收服务器插到每个邮件消息项端的 Received:头部,它给出了发出本消息的 SMTP 服务器的主机名(“from”)、收取本 消息的 SMTP 服务器的主机名(“by”)以及接收服务器收取本消息的时间。因此, 作为接收者的用户看到的邮件消息大致如下: Received: from by ; 18 Oct 2007 09:53:37 GMT From: alice To: MIME-Version: 1.0 Content-type: multipart/mixed; Boundary=StartOfNextPart -StartOfNextPart Dear bob, Please look at the picture -StartOfNextPart Content-Transfer-Encoding: base64 Content-type: image/jpeg .base64 编码的数据. .base64 编码的数据. -StartOfNextPart there is some acsii letter here 有时候,单个邮件消息会有多个 Received:头部,有的还会有一个较复杂的 Return-path:头部。这是因为邮件消息在从发送者的主机到接收者的主机的传送过 程中,可能会被转发到不止一个 SMTP 服务器。例如,如果 Bob 指示他在主机 上的邮件服务器把他的所有邮件转发到主机 ,那么他通过其用户 代理看到的邮件消息可能以大体如下的两行开头: Received: from by ; 18 Oct 2007 09:55:37 GMT Received: from by ; 18 Oct 2007 09:53:37 GMT 武汉工程大学邮电与信息工程学院毕业设计(论文) 13 这些头部给接收用户代理提供了相应邮件消息访问过的 SMTP 服务器及访问 时间的踪迹。SMTP 规范所在的 RFC 822 详细定义丁 Received:头部的语法。 第第 3 章章 电子邮件软件的总体设计电子邮件软件的总体设计 3.1 系统总体设计系统总体设计 利用 C#实现电子邮件的接收和发送,电子邮件软件共分为服务器端和客户端 两部分,服务器端程序主要负责侦听客户端发来的邮件,客户端需登录到服务端 才可以实现正常的接收和发送邮件功能14。 3.1.1 性能设计性能设计 (1) 稳定性 软件最重要的性能就是它的稳定性。本软件在 Windows 操作系统下使用 C# 软件进行编写,保证的平台的稳定性。 客户端对邮件的所有处理都是在网络连接建立之前进行的,在发送邮件时只 是简单的从文件中读取并发送,无需对邮件进行任何处理。这样简化了发送过程, 缩短了网络连接时间,避免了发送邮件时要解决邮件格式和内容错误的问题,减 少了网络出错的机率。而服务器将收取到的邮件存储在本地硬盘临时文件夹中, 只有在邮件投递到用户的邮箱、成功转发或在指定次数内无法转发的情况下才删 除,这就保证了邮件不会丢失。 (2) 兼容性 SMTP 电子邮件系统应该与目前广泛使用的各种客户端软件及邮件服务器系 统相兼容。具体的要求是: SMTP 客户端发送的邮件应该可以被其他邮件客户端软件解析并正确显示; 武汉工程大学邮电与信息工程学院毕业设计(论文) 14 SMTP 客户端可以向现在被广泛使用的邮件服务器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论