3三个重要的邮件系统相关协议_第1页
3三个重要的邮件系统相关协议_第2页
3三个重要的邮件系统相关协议_第3页
3三个重要的邮件系统相关协议_第4页
3三个重要的邮件系统相关协议_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、第三节 三个重要的邮件系统相关协议3.1 SMTP 协议:1.SMTP 是工作在两种情况下: 一是电子邮件从客户机传输到服务器; 二是从某一个服务 器传输到另一个服务器2.SMTP是个请求/响应协议,命令和响应都是基于ASCII文本,并以CR和LF符结束。响应包括一个表示返回状态的三位数字代码3.SMTP 在 TCP 协议 25 号端口监听连接请求4. 连接和发送过程:a. 建立 TCP 连接b. 客户端发送 HELO 命令以标识发件人自己的身份, 然后客户端发送 MAIL 命令服务器 端正希望以 OK 作为响应,表明准备接收c. 客户端发送RCPT命令,以标识该电子邮件的计划接收人,可以有多

2、个RCPT行服务器端则表示是否愿意为收件人接受邮件d. 协商结束,发送邮件,用命令 DATA 发送e. 以 .表示结束输入内容一起发送出去f. 结束此次发送,用 QUIT 命令退出。5. 另外两个命令:VRFY- 用于验证给定的用户邮箱是否存在,以及接收关于该用户的详细信息。EXPN- 用于扩充邮件列表。6. 邮件路由过程:SMTP 服务器基于域名服务 DNS 中计划收件人的域名来路由电子邮件。 SMTP 服务器基于 DNS 中的 MX 记录来路由电子邮件, MX 记录注册了域名和相关的 SMTP 中继主机, 属于该域的电子邮件都应向该主机发送。若 SMTP 服务器 收到一封信要发到 shus

3、er:a. Sendmail 请求 DNS 给出主机 的 CNAME 记录,如有,假若 CNAME 到 ,则再次请求 的 CNAME 记录,直到没有为止。b. 假定被 CNAME 至i ,然后 sendmail 请求 域的 DNS 给出 的 MX 记录,shmail MX 5 10 c. Sendmail 最后请求 DNS 给出 的 A 记录,即 IP 地址,若返回值为d. Sendmail 与 连接,传送这封给 shuser 的信至 这台服务器的 SMTP 后台程序7.SMTP 基本命令集:命令 描述HELO 向服务器标识用户身份发送者能欺骗,说

4、谎,但一般情况下服务器都能检测至。MAIL 初始化邮件传输mail from:RCPT 标识单个的邮件接收人;常在 MAIL 命令后面可有多个 rcpt to:DATA 在单个或多个 RCPT 命令后,表示所有的邮件接收人已标识,并初始化数据传输, 以 . 结束。VRFY 用于验证指定的用户 / 邮箱是否存在;由于安全方面的原因,服务器常禁止此命令EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用HELP 查询服务器支持什么命令NOOP 无操作,服务器应响应 OKQUIT 结束会话RSET 重置会话,当前传输被取消8. MAIL FROM 命令中指定的地址是称作 envelope

5、from 地址, 不需要和发送者自己的 地址是一致的。RCPT TO 与之等同, 指明的接收者地址称为 envelope to 地址, 而与实际的 to :行是什么 无关。9. 为什么没有 RCPT CC 和 RCPT BCC:?所有的接收者协商都通过RCPT TO命令来实现,如果是 BCC,则协商发送后在对方接收时被删掉信封接收者10. 邮件被分为信封部分,信头部分和信体部分envelope from, envelope to 与 message from:, message to: 完全不相干。evnelope 是由服务器主机间 SMTP 后台提供的,而 message from/to 是

6、由用户提供的。 有无冒号也是区别。11. 怎样由信封部分检查是否一封信是否是伪造的?a. received 行的关联性。现在的 SMTP 邮件传输系统,在信封部分除了两端的内部主机处理的之外,考虑两个公司防火墙之间的部分,若两台防火墙机器分别为A和E,但接收者检查信封received : 行时发现经过了 C.则是伪造的。b. received :行中的主机和 IP 地址对是否对应如:Receibed: from ( 15 by mail .c. 被人手动添加在最后面的 received 行:Received: fro

7、m (15) by mail . (8.8.5)Received: from by (8.7.3)Received: from by (8.6.4)3.2 POP3 协议规范1. 简介对于在网络上的比较小的结点,支持消息传输系统( mts )是不实际的。例如,一台工 作站可能不具有充足的资源允许 smtp 服务器和相当的本地邮件传送系统保持序驻留, 并持 续运行。同样的,将一台个人计算机长时间连接在 ip 类型网络上的费用也是可观的

8、(结点 缺少的资源被称为 “联络性”)。 虽然如此, 在这样的小结点上允许管理邮件是十分有用的, 并且这些结点经常支持一个用户代理来管理邮件。为解决这一问题,能够支持 mts 的结点 就为这些不能支持的结点提供了邮件存储功能。邮局协议-版本 3 就是使这样的工作站可以用一种比较实用的方法来访问存储于服务器上的储存邮件。通常, 这意味着工作站可以从服务器上取得邮件, 而服务器为它暂时保存邮件。 在下文中, 客户主机指的是利用 pop3 服务 的主机,而服务器主机指的是提供 pop3 服务的主机。2. 简单说明在此文档中不指明客户主机如何将邮件送入到传送系统中去。 但这里有一个说明: 当用 户代理

9、需要将信息送到传送系统时, 它在接力主机上建立 smtp 连接(这些接力主机可以是pop3 主机,也可以不是)3. 基本操作初始时, 服务器通过侦听 tcp 端口 110 开始 pop3 服务。当客户主机需要使用服务时, 它将与服务器主机建立 tcp 连接。当连接建立后, pop3 发送确认消息。客户和 pop3 服务 器相互(分别)交换命令和响应,这一过程一直要持续到连接终止。 pop3 命令由一个命 令和一些参数组成。所有命令以一个 crlf 对结束。命令和参数由可打印的 ascii 字符组成, 它们之间由空格间隔。 命令一般是三到四个字母, 每个参数却可达 40 个字符长。 pop3 响

10、 应由一个状态码和一个可能跟有附加信息的命令组成。 所有响应也是由 crlf 对结束。 现在有 两种状态码, “确定” (+ok) 和“失败” (-err) 。 对于特定命令的响应是由许多字符组 成的。 在这些情况中, 下面一一表述:在发送第一行响应和一个crlf 之后, 任何的附加信息行发送,他们也由 crlf 对结束。 当所有信息发送结束时, 发送最后一行, 包括一个结束字符 (十进制码 46 ,也就是“ .”)和一个 crlf 对。如果信息中的任何一行以结束字符开始,此 行就是通过在那一行预先装入结束而进行字符填充的。 因此,多行响应由五个 crlf.crlf 结束。 当检测多行响应时,

11、 客户检测以确认此行是否以结束字符开始。 如果是的, 而且其后的字符 不是 crlf ,此行的第一个字符(结束字符)将被抛弃;如果其后紧跟 crlf ,从 pop 服务器来 的响应终止,包括 .crlf 的行也不被认为是多行响应的一部分了。 在生命周期中, pop3 会 话有几个不同的状态。 一旦 tcp 连接被打开, 而且 pop3 服务器发送了确认信息, 此过程就 进入了“确认”状态。在此状态中,客户必须向 pop3 服务器确认自己是其的客户。一旦确 认成功,服务器就获取与客户邮件相关的资源,此时这一过程进入了“操作”状态。在此状 态中,客户提出服务, 当客户发出 quit 命令时, 此过

12、程进入了 “更新”状态。在此状态中, pop3 服务器释放在“操作”状态中取得的资源,并发送消息,终止连接。 pop3 服务器可 以拥有一个自动退出登录的记时器。此记时器必须至少可以记录 10 分钟。这样从客户发送 闭 tcp 连接,而且不删除任何消息,不向客户发送任何响应。的消息才可能刷新此记时器。当记时器失效时,pop3 会话并不进入“更新”状态,而是关4. “确认”状态一时 tcp 连接由 pop3 客户打开, pop3 服务器发送一个单行的确认。这个消息可以是 由 crlf 结束的任何字符。例如,它可以是:s: +ok pop3 server ready注意:这个消息是一个 pop3

13、应答。 pop3 服务器应该给出一个“确定”响应作为确认。 此时 pop3 会 话就进入了“确认”状态。此时,客户必须向服务器证明它的身份。在文档中介绍两种可能 的处理机制,一种是 user 和 pass 命令,另一种是在后面要介绍的 apop 命令。 用 user 和 pass 命令进行确认过程,客户必须首先发送 user 命令,如果 pop3 服务器以“确认” 状态码响应,客户就可以发送 pass 命令以完成确认,或者发送 quit 命令终止 pop3 会话。 如果 pop3 服务器返回 “失败” 状态码,客户可以再发送确认命令, 或者发送 quit 命令。 当 客户发送了 pass 命令

14、后, 服务器根据 user 和 pass 命令的附加信息决定是否允许访问相应 的存储邮件。 一旦服务器通过这些数据决定允许客户访问储存邮件,服务器会在邮件上加 上排它锁,以防止在进入“更新”状态前对邮件的改变。如果成功获得了排它锁,服务器返 回一个“确认”状态码。会话进入“操作状态” ,同时没有任何邮件被标记为删除。如果邮 件因为某种原因不能打开 (例如, 排它锁不能获得, 客户不能访问相应的邮件或者邮件不能 进行语法分析) ,服务器将返回“失败”状态码。在返回“失败”状态码后,服务器会关闭 连接。如果服务器没有关闭连接,客户可以重新发送确认命令,重新开始,或者发送 quit 命令。 在服务器

15、打开邮件后,它为每个消息指定一个消息号,并以八进制表示每个消息的 长度。第一个消息被指定为 1,第二个消息被指定为 2,以此类推, 第 n 个消息被指定为 n 。 在 pop3 命令和响应中,所以的消息号和长度以十进制表示。下面是对上述三条命令的总结: 命令格式 参数限制响应user name指定邮箱的字符串,这对服务器至关重要仅在 user 和 pass 命令失败后或在“确认”状态 中使用+ok :有效邮箱;-err :无效邮箱c: user mroses: +ok mrose is a real hoopy frood c: user frateds: -err sorry, no mai

16、lbox for frated herepass string口令仅在“确认”状态中 user 命令成功后使用(因为此命令只有一个参数,因此空格不再 作为分隔符,而作为口令的一部分)+ok :邮件锁住并已经准备好;-err 无效口令或无法锁住邮件c: user mrose c: pass secrets: +ok mrose is a real hoopy froods: +ok mroses maildrop has 2 messages (320 octets)c: user mrose s: +ok mrose is a real hoopy froodc: pass secrets:

17、-err maildrop already lockedquit(无)(无)+okc: quits: +ok dewey pop3 server signing off5. “操作”状态 一旦客户向服务器成功地确认了自己的身份,服务器将锁住并打开相应的邮件,这时pop3 会话进入“操作”状态。现在客户可以重复下面的 pop3 命令,对于每个命令服务器 都会返回应答。最后,客户发送 quit 命令,会话进入“更新”状态。 下面是在“操作”状 态中可用的命令:命令参数限制说明响应stat无) 仅在“操作”状态下可用。服务器以包括邮件信息的响应做为“确认” 。为简化语法分析,所有的服务器要求使用邮件

18、 列表的特定格式。 “确认”响应由一个空格,以八进制表示的邮件数目,一个空格和邮件大 小。这是最小实现,高级的实现还需要别的信息。 注意:被标记为删除的信件不在此列。+ok : nn mmc: stats: +ok 2 320list msg信件数目(可选) ,如果出现,不包括标记为删除的信件。仅在“操作”状态下可用。如果给出了参数, 且 pop3 服务器返回包括上述信息的 “确认”,此行称为信息的 “扫描表” 。 如果没有参数,服务器返回“确认”响应,此响应便以多行给出。在初的 +ok 后,对于每 个信件,服务器均给出相应的响应。 为简化语法分析,所有服务器要求使用扫描表的特定 格式。 它包

19、括空格, 每个邮件的确切大小。 这是最小实现, 高级的实现还需要别的信息。 注 意:被标记为删除的信件不在此列。+ok :其后跟扫描表;-err :无扫描。c: list s: 1 120 s: 2 200s: +ok 2 messages (320 octets)s: .c: list 2s: +ok 2 200c: list 3s: -err no such message, only 2 messages in maildropretr msg不包括标记为删除的信件数目。仅在“操作”状态下可用。如果服务器返回“确认” ,给出的响应是多行的。在初始的 +ok 后,服务器发送与给定信息 号对

20、应的信息,对于多行响应,注意字节填充终止符。+ok :消息在其后;-err :其后无消息。c: retr 1s: +ok 120 octetss: the pop3 server sends the entire message heres: .dele msg不包括标记为删除的信件数目。 仅在“操作”状态下可用。服务器在会话进入服务器将此信件标记为删除, 以后任何关于此信件的操作就会产生错误。“更新”状态前不会真正删除此信件。+ok :信件被删除;-err :无此信件。c: dele 1s: +ok message 1 deleted c: dele 2s: -err message 2 a

21、lready deleted noop(无) 仅在“操作”状态下可用。服务器仅返回“确认” +okc: noops: +okrset(无)仅在“操作”状态下可用。所有被标记为删除的信件复位,服务器返回“确认” +okc: rset6. “更新”状态s: +ok maildrop has 2 messages (320个字符 )当客户在“操作”状态下发送 quit 命令后,会话进入“更新”状态。 (注意:如果客户 在“确认”状态下发送 quit 后,会话并不进入“更新”状态。 ) 如果会话因为 quit 命令以 外的原因中断,会话并不进入“更新”状态,也不从服务器中删除任何信件。命令参数限制说明

22、响应quit(无)(无) 服务器删除所有标记为删除的信件,然后释放排它锁,并返回这些操作的状态码。最后 tcp 连接被中断。+okc: quits: +ok dewey pop3 server signing off (清空标记邮件 )c: quits: +ok dewey pop3 server signing off7. 可选的 pop3 命令以上讨论的命令是对 pop3 服务的最小实现。 以下说明的可选命令允许客户更方便地处 理信件,这是一个比较一般的 pop3 服务实现。命令 参数限制说明响应top msg n一个是未被标记为删除的信件数,另一个是非负数(必须提供)仅在“操作”状态下使

23、用。如果服务器返回“确认” ,响应是多行的。在初始的 +ok 后,服务器发送信件头,一个空行 将信件头和信件体分开,对于多行响应要注意字节填充终止符。 注意:如果客户要求的行 数比信件体中的行数大,服务器会发送整个信件。+ok :其后有信件头;-err :其后无类似消息。c: top 1 10s: +oks: 服务器发送消息头,一个空行和信件的头10 行s: .c: top 100 3s: -err no such message uidl msg信件数(可选)如果给出信件数,不包括被标记为删除的信件。仅在“操作”状态下使用。如果给出了参数,且 pop3 服务器返回包括上述信息的“确认” ,此

24、行称为信息的“独立 -id 表”。 如果没有参数,服务器返回“确认”响应,此响应便以多行给出。在初的 +ok 后, 对于每个信件,服务器均给出相应的响应。此行叫做信件的“独立 -id 表”。 为简化语法分 析,所有服务器要求使用独立 -id 表的特定格式。它包括空格和信件的独立 -id 。 信件的独 立-id由0x21到0x7e字符组成,这个符号在给定的存储邮件中不会重复。注意:信件不包括被标记为删除的信件。+ok :其后是独立 -id 表;-err :其后无类似信件。c: uidls: +oks: 1 whqtswo00wbw418f9t5jxywzs: 2 qhdpyr:00wbw1ph7

25、x7s: .c: uidl 2s: +ok 2 qhdpyr:00wbw1ph7x7c: uidl 3 apop name digests: -err no such message, only 2 messages in maildrop指定邮箱的字串和 md5 摘要串。仅在 pop3 确认后的“确认”状态中使用。通常,每个 pop3 会话均以 user/pass 互换开始。这导致了用户名和口令在网络上的显式 传送, 这不会造成什么危险。但是, 许多客户经常连接到服务检查信件。通常间隔时间比较 短,这就加大了泄密的可能性。 另 一种提供“确认”过程的方法是使用 apop 命令。 实 现 ap

26、op 命令的服务器包括一个标记确认的时间戳。例如:在 unix 上使用 apop 命令的语 法为: process-id.clockhostname,其中进程 -id 是进程的十进制的数, 时钟是系统时钟的十进制表示,主机名与 pop3 服务器名一致。 客户记录下此时间戳,然后以送 apop 命 令。 name 语法和 user 命令一致。 digest 是采用 md5 算法产生的包括时间戳和共享密钥 的字串。此密钥是客户和服务器共知的, 应该注意保护此密钥,如果泄密, 任何人都能够以 用户身份进入服务器。 如果服务器接到 apop 命令,它验证 digest ,如果正确,服务器返 回“确认”

27、,进入“操作”状态;否则,给出“失败”并停留在“确认”状态。 注意:共享 密钥的长度增加,解读它的难度也相应增加,这个密钥应该是长字符串。+ok :邮件锁住并准备好;-err :拒绝请求。s: +ok pop3 server ready c: apop mrose c4c9334bac560ecc979e58001b3e22fbs: +ok maildrop has 1 message (369 octets) 在 此 例 子 中 , 共 享 密 钥 tanstaaf由 md5 算法生成,它产生了 digest 值,c4c9334bac560ecc979e58001b3e22fb8. pop3

28、 命令总结 基础的 pop3 命令: user name 在“确认”状态有效pass stringquitstat 在“操作”状态有效list msgretr msgdele msgnooprsetquit 在“更新”状态有效可选的 pop3 命令:apop name digest 在“确认”状态有效top msg n 在“操作”状态有效uidl msgpop3 响应: +ok -err注意:除了 stat , list 和 uidl 的响应外,其它命令的响应均为 +ok 和 -err 。响应后的所 有文本将被客户略去。9. pop3 会话实例s: c: s: +ok pop3 server

29、ready c: apop mrose c4c9334bac560ecc979e58001b3e22fbs: +ok mroses maildrop has 2 messages (320 octets)c: stats: +ok 2 320c: lists: +ok 2 messages (320 octets)s: 1 120s: 2 200s: .c: retr 1s: +ok 120 octetss: s: .c: dele 1s: +ok message 1 deletedc: retr 2s: +ok 200 octetss: s: .c: dele 2s: +ok message

30、 2 deletedc: quit s: +ok dewey pop3 server signing off (maildrop empty)c: s: 3.3 IMAP4 协议 是目前国内众多免费电子邮件站点中率先提供 IMAP4 服务的系统,完整支 持最新版本的 IMAP4 rev1(RFC2060) 协议。 IMAP 是 Internet Message Access Protocol 的缩写,顾名思义,主要提供的是通过 Internet 获取信息的一种协议。 IMAP4 是 IMAP 协 议的第 4 个版本,正如 POP3 是 POP 协议的第 3 个版本一样。在 邮件系统内, IMA

31、P 是一种强有力的邮箱访问方式。和 POP3 的区别由于很多用户都对 POP3 非常熟悉,我们就从 POP3 说起。 POP3 提供了快捷的邮件 下载服务,用户可以利用 POP3 把邮箱里的信下载到 PC 上进行离线阅读。一旦邮件进入 PC 的本地硬盘, 就可以选择把邮件从服务器上删除, 然后脱离与 Internet 的连接并选择在 任何时候阅读已经下载的邮件。IMAP 同样提供了方便的邮件下载服务, 让用户能进行离线阅读, 但 IMAP 能完成的却 远远不只这些。首先, IMAP 提供的摘要浏览功能可以让你在阅读完所有的邮件到达时间、 主题、发件人、 大小等信息后才作出是否下载的决定。也就是说,你不必等所

温馨提示

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

评论

0/150

提交评论