第10章 电子邮件协议
10.3 POP
POP3与SMTP一样都是请求响应协议,命令与响应也都是用NVT ASCII格式的文本表示 POP3响应由一个状态码和其后的附加信息组成,只有两种状态码: “+OK”(正确)和“-ERR”(失败)
常用POP3命令
命令及格式 USER username PASS password STAT LIST [Msg#] RETR [Msg#] DELE [Msg#] NOOP RSET QUIT 指定用户名 指定密码 询问邮箱状态(如邮件总数和总字节数等) 列出邮件索引(邮件数量和每个邮件的大小) 取回指定的邮件 删除指定的邮件 空操作 重置所有标记为删除的邮件,用于撤消DELE命令 提交修改并断开连接 描述
客户端主动连接到服务器的25端口,建立TCP连接。服务器会发送一个应答码为 220的问候报文,表示已经准备就绪。 客户端向服务器发送HELO命令,用以标识发送方的身份,HELO命令的参数必须 是一个合法的主机名。如果服务器接受了连接请求,会给客户端返回一个代码为 250的应答,表示可以开始报文传输。 客户端发送MAIL命令标识邮件的发送方,通过FROM参数指定发送方的电子邮件 地址。如果服务器准备接收邮件,则返回代码为250的OK应答。 客户端发送RCPT命令标识邮件的接收方,通过TO参数指定接收方的电子邮件地 址,如果有多个接收人,可以发送多个RCPT命令。如果服务器能够识别接收人, 则会返回代码为250的OK应答,否则返回代码为550的失败应答。 客户端与服务器之间的协商结束,客户端发送DATA命令指示将要发送邮件数据, 服务器端返回应答码为354的响应进行确认,表示可以开始邮件输入。客户端将邮 件内容按行发送,邮件的末尾由客户端指定,是只有一个小数点(邮件数据结束指 示器)的一行,服务器检测到邮件数据结束指示器后,返回代码为250的OK应答。 客户端发送QUIT命令终止连接。
10.1.2 TCP/IP电子邮件系统
邮件
用 户 界 面
邮件 spool
邮件 TCP
邮件
邮件 邮
邮件 邮件 TCP
spooling
电子邮件系统
10.1.3 电子邮件协议
收发电子邮件在的过程中,要遵循一些基本协议和标准, 这些协议和标准保证电子邮件在各种不同的网络与操作系 统之间能够正确地进行传输 常见的电子邮件传输协议主要有以下三种:
10.3 POP
POP是一种邮件接收协议,其作用是:当用户计 算机与支持POP协议的电子邮件服务器连接时, 把存储在该服务器的电子邮箱中的邮件准确无误 地下载到用户的计算机中 POP3属于离线式协议,即不能对邮件进行在线 操作,必须下载到本地才能进行处理。离线工作 方式适合于那些从固定计算机上接收邮件的用户 使用,因为邮件必须从服务器上删除。 POP协议已发展到第三版,称作POP3
SMTP (简单邮件传输协议):最常用的电子邮件传送协议 POP3 (邮局协议):最常用的电子邮件接收协议 IMAP4 (网络邮件访问协议):POP3的一种替代协议,提供了邮件 检索和邮件处理的新功能
目前,大多数邮件服务器都安装了SMTP和POP3这两项 协议,即SMTP服务器作为邮件发送服务器,POP3服务 器作为邮件接收服务器
10.2.5 电子邮件的结构
电子邮件的主要结构:
邮件头 (Header) 用于分隔邮件头与邮件正文的空行 邮件正文 (Body) 签名 (Signature) (位于邮件末尾的可选部分)
10.2.5 电子邮件的结构
邮件头的每一行都遵循“标题域:值”的格式
Received: from (unknown [202.116.64.3]) by bjmx3 (Coremail) with SMTP id tYECALSfOkFDAEAD.1 for <tonny@>; Sun,05 Sep 2004 13:10:25 +0800 (CST) X-Originating-IP: [202.116.64.3] Received: from RsProxy ([192.168.48.120]) by (8.11.5/8.11.5) with SMTP id i855ABU27225 for <tonny@>; Sun,5 Sep 2004 13:10:12 +0800 (CST) Message-ID: <000801c49306$85c53fc0$7830a8c0@> From: "jimmy" <jimmy@> To: <tonny@> Subject: =?gb2312?B?z/vPog==?= Date: Sun,5 Sep 2004 13:09:27 +0800 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0005_01C49349.92912D20" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200
10.2.1 SMTP的工作原理
发送SMTP在接到用户的邮件请求后,判断此邮件是否为本地 邮件,若是则直接投送到用户的邮箱,否则建立一条到远程接 收SMTP的双向传输通道,这里的接收SMTP可以是最终接收 者,也可以是中间传送者。此后,SMTP命令从发送SMTP发 出,由接收SMTP接收,而SMTP应答则反方向传送。 SMTP命令、响应以及邮件内容均使用NVT ASCII格式的文本
10.2 SMTP协议
SMTP协议的作用是:当发送方计算机与支持SMTP协 议的电子邮件服务器连接时,将电子邮件由发送方计算 机准确无误地传送到接收方的电子邮箱中 SMTP的一个重要特点是它能够在传送中接力传送邮件, 即邮件可以通过不同网络上的主机接力式传送 SMTP一个相对简单的基于文本的协议。通过SMTP发 送的所有电子邮件都是普通文本格式的,它不能直接传 输图像、声音等非文本信息,但可以应用MIME标准将 二进制文件编码后再通过SMTP传输
邮件头示例 →
10.2.5 电子邮件的结构
邮件中常见的标题域:
Received域:邮件每经过一台主机时,就产生一个Received域, 用来记录所经过主机的地址和经过时间,回复的信件可以按原路 返回,而不必去选择路由。此域常拆为多行显示。 Date域:记录邮件发送日期(本地主机的日期和时间)。 Message-ID域:邮件惟一的标识号。 Message-ID From域:发信人邮件地址。 To域:收信人邮件地址。 Cc域:抄送邮件地址,需要将邮件发送给多个收信人时使用。 Reply-to域:回复邮件地址,当发信人有几个邮件账号,且要求 对方回复的地址不是发信地址时使用。 Subject域:邮件主题。 以“X-”开始的域:这些域是在基本邮件系统的基础上添加的属 性,只有在发送和目的双方邮件服务器都支持这些属性的情况下, 使用这些属性才有意义。
MS MTA MTA
MS
表示层
MOTIS电子邮件系统的模型
10.1.2 TCP/IP电子邮件系统
TCP/IP电子邮件系统在概念上也分为用户界面和 邮件传输两部分,但邮件传输部分并未独立出来, 形成一个类似MOTIS中MTA的组件,这是因为 TCP/IP自始至终坚持端到端的思想,TCP/IP电 子邮件系统也采用端到端的传输方式 TCP/IP中采用spooling(假脱机)缓冲技术来解 决延迟传递(delayed delivery)问题,将用户收 发邮件与实际的邮件传输区别开来
10.2.3 SMTP命令
SMTP命令和FTP命令一样,都是使用NVT ASCII格式的 文本,以明文传输的。SMTP简捷的原因之一是它使用 的命令少,SMTP的最小实现仅需要8种命令就够了
常用SMTP命令一览表
命令 HELO MAIL RCPT DATA QUIT RSET VRFY NOOP 用于启动邮件传输过程 用于初始化邮件传输 用于标识单个邮件接收人,在MAIL命令后面可有多个RCPT命令 用于将邮件报文发送给服务器 用于终止客户端与服务器之间的连接 用于中止当前的邮件事务并使两端复位 用于验证指定的用户/邮箱是否存在,即验证接收方地址是否正确 空操作命令 描述
传递迅速:在数分钟之内可到达地球上任何一个地方 信息多样:除文字外,还可包含图片、音乐、动画、 视频等多媒体信息,也可以附带上软件、数据等资料 方便高效:只要能连接到Internet,就可以随时随地 地收发E-mail,而且只需极少的费用
10.1 电子邮件系统
电子邮件与之前介绍的TELNET和FTP服务不同, 它不是一种“终端到终端”的服务,而是使用了 “存储转发式”的服务,这是一种异步通信方式 通过存储转发可以进行非实时通信,即信件发送 者可随时随地发送邮件,不需要接收者同时在场 邮件服务器是24小时连接到网络的高性能、大容 量的计算机,在服务器的硬盘上为用户分配一定 的存储空间,作为用户的“邮箱” 用户可通过用户名和密码来登录“邮箱”,并进 行发信、收信、编辑、转发、存档等各种操作
10.1.1 ISO/OSI电子邮件系统
MOTIS电子邮件系统分为两部分
用户代理UA: 为用户提供良好的 操作界面,并负责生成与处理消息 信息传输代理MTA:主要负责消息 传输,即所谓的“电子邮局”
发送者 接收者
UA
UA
在电子邮件系统的具体实现中, UA一般位于个人计算机内,而 MTA一般位于邮件服务器中 MOTIS的电子邮件传输是存储转 发型的,其中的MTA扮演网关的 角色,邮件经逐个MTA传输直至 信宿用户所在的MTA
用户 发送 文件 系统 SMTP SMTP 命令 邮件内容 SMTP 响应 接收 SMTP 文件 系统