2022年电子邮件系统的设计方案与实现.docx
《2022年电子邮件系统的设计方案与实现.docx》由会员分享,可在线阅读,更多相关《2022年电子邮件系统的设计方案与实现.docx(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品学习资源第一章前言 1.1课题来源 当前流行的各大邮件客户端软件除了最主要的收发信件之外,功能越来越复杂,但是人们平常真正用到的功能很少,很多功能特殊对于那些运算机学问相对缺乏的人来说,更加显得太过于华丽而不太实用;有鉴于此,在明白RFC 底层协议的基础上,本人开发了这个各种功能相对简洁有用的邮件客 户端程序,简化了很多不必要的功能;1.2 电子邮件介绍 电子邮件 简称 E-mail )又称电子信箱、电子邮政,它是一种用电子手段供应信息交换的通信方式;它是全球多种网络上使用最普遍的一项服务;这种非交互式的通信,加速了信息的沟通及数据传送,它是一个简易、快速的方法;通过连接全世界的Inter
2、net,实现各类信号的传送、接收、储备等处理,将邮件送到世界的各个角落;到目前为止,可以说电子邮件是Internet 资源使用最多的一种服务,E-mail 不只局限于信件的传递 , 仍 可 用 来 传 递 文 件 、 声 音 及 图 形 、 图 像 等 不 同 类 型 的 信 息 ;电子邮件不是一种 “终端到终端 ”的服务,是被称为 “储备转发式 ”服务;这正是电子信箱系统的核心,利用储备转发可进行非有用时通信,属异步通信方式;即信件发送者可随时随地发送邮件,不要求接收者同时在场,即使对方现在不在,仍可将邮件读取信件,不受时空限制;在这里, “发送 ”邮件意味着将邮件放到收件人的信箱中,而“接
3、收 ”邮件就意味着从自己的信箱中读取信件,信箱实际上是由文件治理系统支持是一个实体;由于电子邮件是通过邮件服务器 mail server )来传递的;通常mail server 是执行多任务操作系统UNIX的运算机,它供应24 小时的电子邮件服务,用户只要向mail server 治理人员申请一个信箱账号,就可使用这项快递的邮件服务;1.3 电 子邮 件的 工作 原理 : 电 子 邮 件 的 发 送 是 通 过 电 子 邮 件 简 单 传 速 协 议, 512内 存 , 80G硬 盘Microsoft)Windows XP Professional Micosoft Visual Studio
4、 2003 0接受全部的邮件保留服务器上的邮件?删除邮件关闭连接退出图 4 接收邮件流程图发送邮件的流程图,先检查“发信箱”目录中是否有待发邮件,假如有就逐个发送这些邮件,流程图如图5 所示;其发送过程,第一需要创建一个TCP 连接,连接到 SMTP 服务器,假如连接不胜利就退出程序;连接胜利后发送USER 和 PASS 命令进行身份验证;身份验证通过后发送邮件,假如发送胜利就关闭连接,更新数据库,完成邮件发送任务;欢迎下载精品学习资源开头检查发信箱中的待发邮件待发邮件?连接服务器连接胜利SMTP 服务 器 需 要 身份身份验证身 份 验 证胜利?发送待发邮件发送胜利关闭连接更新数据库获得下一
5、个邮件退出图 5 发送邮件流程图3.2 SMTP协议的讨论由于要开发的是邮件客服端程序,就不得不用到SMTP 协议和 POP 协议;而我个人负责的是邮件发送功能的实现,因此就必定会涉及到SMTPSimple Mail Transfer Protocol)协议; SMTP 被用来在因特网上发送邮件,该协议规定了一些基本的命令和方法使客服端与服务器进行交互,以达到发送邮件的目的;欢迎下载精品学习资源3.2.1 SMTP 介绍简洁邮件传输协议SMTP )的目标是牢靠高效地传送邮件,它独立于传送子系统而且仅要求一条可以保证传送数据单元次序的通道;SMTP 的一个重要特点是它能够在传送中接力传送邮件,传
6、送服务器供应了进程间通信环境 IPCE ),此环境可以包括一个网络,几个网络或一个网络的子网;懂得到传输送系统 或 IPCE)不是一对一的是很重要的;进程可能直接和其它进程通过已知的IPCE 通信;邮件是一个应用程序或进程间通信;邮件可以通过连接在不同IPCE 上的进程跨网络进行邮件传送;更特殊是,邮件可以通过不同网络上的主机接力式传送;3.2.2 SMTP 模型SMTP 设计基于以上通信模型:针对用户的邮件恳求,发送SMTP 建立于接收 SMTP 之间建立一个双向传送通道;接收SMTP 可以是最终接收者也可以是中间传送者;SMTP 命令由发送 SMTP 发出,由接收SMTP 接收,而应答就反
7、方面传送;一旦传送通道建立, SMTP 发送者发送 MAIL命令指明邮件发送者;假如SMTP 接收者可以接收邮件就返回OK 应答; SMTP 发送者再发出RCRT 命令确认邮件是否接收到;假如 SMTP 接收者接收,就返回OK 应答;假如不能接收到,就发出拒绝接收应答但不中止整个邮件操作),双方将如此重复多次;当接收者到全部邮件后会接收到特殊的序列,假如接收者胜利处理了邮件,就返回OK 应答;SMTP 供应传送邮件的机制,假如接收方与发送方连接在同一个传送服务下时,邮件可以直接由发送方主机传送到接收方主机;或者,当两者在不同一个传送服务下时,通过中继 SMTP 服务器传送;为了能够对SMTP
8、服务器供应中继才能,它必需拥有最终目的主机地址和邮箱名称;MAIL 命令参数是回复路径,它指定邮件从何处来;而 RCPT 命令的参数是转发路径的,它指定邮件向何处去;向前路径是源路径,而回复路径是返回路径 它用于发生错误时返回邮件);当同一个消息要发往不同的接收者时, SMTP 遇到了向不同接收者发送同一份数据的复制品的问题,邮件命令和应答有一个比较古怪的语法,应答也有一个数字代码;在下面,例子中可以看到哪些使用实际的命令和应答;完整的命令和应答在第四节;命令与应答对大小写不敏锐,也就是说,命令和应答可以是大写,小写或两者的混合,但这一点对用户邮件名称却不肯定是对的,由于有的主机对用户名大小写
9、是敏锐的;这样 SMTP 实现中就将用户邮箱名称保留成初始时的样子,主机名称对大小写不敏锐;命令与应答由 ASCII 字母表组成,当传送服务供应8 位子节传送通道,每7 位字符正确传送,而最高位被填充为0;当指定一般的命令或应答格式后,参数会由一些类似于语言的字符串表示出来,如“ ”或“ ”,这里尖括号表示这是一种类似于语言的变量;3.3 SMTP协议的命令和应答3.3.1 SMTP 协议的命令SMTP 命令定义了邮件传输或用户定义的系统功能;它的命令是由 终止的字符串;而在带有参数的情形下,命令本身由 和参数分开,假如未带参数可以直接和 连接;邮箱的语法格式必需和接收站点的格式一样;3.3.
10、2 SMTP 的应答码对 SMTP 命令的响应是多样的,它确定了在邮件传输过程中恳求和处理的同步,也保证了发送 SMTP 知道接收 SMTP 的状态;每个命令必需有且只有一个响应;SMTP 响应由三位数字组成,其后跟一些文本;数字帮忙打算下一个应当进入的状态,而文本对人是有意义的;三位的响应已经包括了足够的信息,不用再阅读文本,文本欢迎下载精品学习资源可以直接抛弃或者传递给用户;特殊的是,文本是与接收和环境相关的,所以每次接收到的文本可能不同;正规的情形下,响应由下面序列构成:三位的数字,,一行文本和一个, 或者也可以是一个多行响应;只有EXPN 和 HELP ,命令可以导致多行应答, 然而,
11、对全部命令,多行响应都是答应的;REPLY CODES BY FUNCTION GROUPS 500格式错误,命令不行识别此错误也包括命令行过长)第四章 RFC822说到发送和接收邮件,就不得不提RFC822 了; RFC822 的全称是“ ARPA 因特网文信件格式的标准” Standard for the Format of ARPA Internet Text Messages );该标准供应了邮件内容的格式和相关语义;4.1 RFC822 简洁介绍RFC822 规定的电子邮件内容全部由ASCII字符组成,就是通常所说的文本文件,因而标准将它称为 Internet 文本信件 Intern
12、et Text Messages);从直观上看,信件特别简洁,就是一系列由ASCII字符组成的文本行,每一行以回车换形符终止;从组织上看,信件内容结构分为两大部分,中间用一个空白行只有 CRLF 符的行)来分隔;第一部分称为信件的头部,包括有关发送方、接收方、发送日期等信息;其次部分称为信件的体部,包括信件内容的正文文体;信头是必需的,信体是可选的,即信体可有可无;假如不存在信体,用作分隔的空白行也就不需要;在信体中,也可以有用作分隔的空白行;这样设计的信件便于进行语法分析,提取信件的基本信息;在 RFC822 中规定,信件体就是一系列的向收信人表达信息的文本行,比较简洁,可以包括任意文本;并
13、没有附加的结构;信件头就具有比较复杂的结构,在下一小节中详述;4.2 信件的头部4.2.1 信头一般格式信头的结构比较复杂,信头由如干信头字段header field )组成,这些字段为用户和程序供应了关于信件的信息;要明白信头的结构就要弄清晰各种信头字段;全部的信头字段都具有相同的语法结构,从规律上说,包括四部分,字段名fieldname)紧跟冒号“:” colon ),后跟字段体 fieldbody ),最终以回车换形符CRLF ) 终止;即信头字段 =字段名:字段体 CRLF字段名必需由除了冒号和空格以外的可打印USASCII 字符 其值在 33 和 126 之间) 组成,大多数字段的字
14、段名称由一系列字母,数字组成,中间常常插入横线符;字段名告诉电子邮件软件如何翻译该行中剩下的内容;字段体可以包括除了CR 和 LF 之外的任何 ASCII 字符;但是其中的格式的空格,加括号的注释,引号和多行都比较复杂,另外,字段体的语法和语义依靠于字段名,每个类型的字段有特定的格式;4.2.2 结构化字段和非结构化字段每个字段包含的信息不同,字段大体可以分为结构化字段和非结构化字段;结构化字段有特定的格式,由语法分析程序检测;Sender 字段就是一个很好的例子,它的字段内容是信箱,有一个离散的结构;非结构化的字段含有任意的数据,没有固定格式;例如,Subject 字段可以含有任意的欢迎下载
15、精品学习资源文字,并且没有固定格式;非结构化的字段数量较少,只有Subject 、Comments 、扩展字段、非标准字段、 IN Reply 和 References 等;全部其它字段都是结构化的;4.2.3 信头字段的元素尽管 Email 信件的总体结构特别简洁,但一些信头字段的结构是很复杂的;下面介绍一些大多数字段共有的元素;1)空白符像其它文本文件一样,空白符包括空格符ASCII码 32)和制表符TABASCII码19) 此外,行末的回车换形符CRLF 也应算是空白符;使用空白符可以对字段进行格式化,增加它的可续性;例如,每个字段间用CRLF 来分别,在字段内用空格来分隔字段名和字段内
16、容;在Subject 后面的冒号和内容之间插入空格字符,会使字段结构更加清晰;在 Email 中;空白符的使用并没有固定的规章,但应当正确地使用,仅在需要时才使用空白符,以便接收软件进行语法分析;2)注解注解是由括号括起来的一系列字符,例如,这份礼物);注解一般用在非结构化的信头字段中,没有语法语义,仅为人供应了一些附加的信息;假如在加引号的字符串中包括在括号中的字符,那是字符串的一部分,不是注解;在说明信件的时候,会将注解忽视,可以用一个空格字符代替它们,这样就什么也不会破坏;3)字段折叠每个信头字段从规律上说应当是一个由字段名、冒号、字段体和CRLF组成的单一的行,但为了书写与显示的便利,
17、增加可续行,也为了符号1000/80 的行字符数的限制,可以将超过 80 个字符的信头字段分为多行,即对于比较长的字段,可以分割成几行,形成折叠;在结果化和非结构化字段中都答应折叠,第一行后面的行称为信头字段的续行;续行都以一个空白符开头,这种方法称为折叠folding ),例如标题字段Subject: This is a test 可以表示为:Subject: This is a test反之,将一个被折叠成多行的信头字段复原到它的单行表示的过程叫做去折叠,只要简洁地移除后面跟着空格的CRLF ,将折叠空白符CRLF转换成空格字符,就可以完成折叠;在分析被折叠的字段的语法时,要把一个多行的折
18、叠字段绽开为一行,依据它的非折叠的形式来分析它的语法与语义;4)字段大小写字段名称是不区分大小写的,所以Subject、subject 或 SUBJECT 都一样;不过字段名称大小写有习惯的常用形式,如主题字段的大小写形式通常为Subject;字段体的大小写略微复杂点,要视情形而定;比如Subject 后面的字段体,其中的大写可能就是缩写的专用名词,不能改动;5)扩展字段假如想在信头中加入RFC822 中没有规定的字段,就需要创建非标准字段;方法特别简洁,只要在自定义的信头字段名的前面使用X- 前缀; RFC822 将这种方法称为扩展字段;事实上已经有很多扩展字段被广泛应用,但没有标准定义;例
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 电子邮件 系统 设计方案 实现
限制150内