计算机网络技术 王宇新 大连理工大学
第四章 应用层协议 与应用系统设计方法 第四节 电子邮件系统
TCP/IP 体系的电子邮件系统规定的电子邮件地址格式: 收件人邮箱名@邮箱所在主机的域名 符号“@”读作“at”,表示“在”的意思。 例如,电子邮件地址 user@mail.dlut.edu.cn 用户名在该域名的范围内是唯一的。 邮箱所在主机的域名在 全世界必须是唯一的。 3
一、互联网电子邮件系统设计的基本思路 所有邮件都使用标准的地址格式,并且每个邮箱在其名字空间里是唯一的。 所有邮件报文都使用统一的报文格式,从而保证不同系统之间邮件可以交换。(注意字符集) 使用统一的报文传递协议向最终用户传递报文。 互联网邮件的优势在于: 不管用户使用何种计算机、操作系统、邮件客户端软件或者网络硬件,相互之间都可以实现电子邮件的交换。
二、电子邮件体系结构与基本工作原理 简单邮件传输协议 (simple mail transfer protocol, SMTP) 发送方 邮件缓存 接收端 邮件服务器 用户代理 SMTP POP3 发送端 用户邮箱 接收方 (发送邮件) (发送邮件) (读取邮件) 因特网 简单邮件传输协议 (simple mail transfer protocol, SMTP) 邮局协议 (post office protocol, POP) 第3版 (POP3) 交互式邮件存取协议(interactive mail access protocol, IMAP) 电子邮件的工作原理
SMTP工作在两种情况下 电子邮件从客户机传输到服务器 从某一个服务器传输到另一个服务器 用户邮箱 发送邮件SMTP 发送方 因特网 发送端 接收端 邮件服务器 发送端 用户代理 用户邮箱 发送邮件SMTP 因特网 简单Mail传输协议 (Simple Mail Transfer Protocal),目标是向用户提供高效、可靠的邮件传输。
SMTP是请求/响应协议,监听25号端口,用于接收用户的Mail请求,并与远端Mail服务器建立SMTP连接。 简单Mail传输协议 (Simple Mail Transfer Protocal),目标是向用户提供高效、可靠的邮件传输。
Smtp工作机制 SMTP通常有两种工作模式: 发送SMTP 和 接收SMTP。 查询 mail exchanger 记录 POP3 读取 邮件 TCP 连接 客户 收件人 用户代理 发送 邮件 SMTP TCP 连接 发送方 邮件服务器 客户 服务器 发送邮件 SMTP 接收方 邮件服务器 服务器 POP3 客户 TCP 连接 POP3 读取 邮件 TCP 连接 客户 收件人 用户代理 发送SMTP在接到用户的邮件请求后,判断此邮件是否为本地邮件,若是直接投送到用户的邮箱, 否则向dns查询远端邮件服务器的MX(邮件交换)记录,并建立与远端接收SMTP之间的一个双向传送通道,此后SMTP命令由发送SMTP发出, 由接收SMTP接收,而应答则反方面传送。 Mail Exchanger 它指向一个邮件服务器,用于电子邮件系统发邮件时根据 收信人的地址后缀来定位邮件服务器的。 一个邮件服务器既可以作为客户,也可以作为服务器。 例如,当邮件服务器 A 向另一个邮件服务器 B 发送邮件时,邮件服务器 A 就作为 SMTP 客户,而 B 是 SMTP 服务器。 当邮件服务器 A 从另一个邮件服务器 B 接收邮件时,邮件服务器 A 就作为 SMTP 服务器,而 B 是 SMTP 客户。 查询 mail exchanger 记录
邮件工作系统与邮件的发送、接收系统是分开的: 邮件传输代理 (mail transfer agent, MTA) 用户代理 (user agent, UA) UA是用户与邮件系统的接口,为用户提供阅读、 编辑以及管理邮件的客户端应用 MTA负责在互联网上传送邮件,有客户、服务器之分。 为了使系统高效运行,互联网电子邮件系统将邮件工作系统与邮件的发送、接收系统分开。 邮件用户代理UA是一个邮件系统的客户端程序,它提供了阅读、发送和接收电子邮件的用户接口。邮件传输代理MTA作为邮件的服务器端程序,它负责邮件的存储和转发。电子邮件在Internet上传送依赖于简单邮件传输协议SMTP。SMTP决定了UA与MTA建立连接的方法以及UA发送其电子邮件的方法,也使用它在UA与MTA之间进行邮件的转发。SMTP协议能够将报文发送给邮件服务器或者是MTA,但并没有提供将报文转发至最终目的地的方法,该目的地是指与邮件接收者接口的UA程序。要使用UA从MTA上收取邮件,就要使用邮局协议POP和互联网消息访问协议IMAP。常用的UA有:Linux环境下的mail、pine、Netscape; Windows环境下的Outlook、Foxmail等。常用的MTA有:Linux环境下的Sendmail、Qmail、Postfix、exim等; Windows环境下的Exchange、imail等。
在实际的电子邮件系统中,发送端用户需要通过多个中继MTA服务器,存储转发邮件。
在互联网中邮件报文传输过程 用户A使用主机A上的用户代理软件,将写给用户B的邮件报文发给自己注册的邮件服务器A。邮件服务器A接收并存储,通知用户A “成功发送”; 邮件服务器A根据用户B的“电子邮件地址”判断发往何处。首先想DNS系统查询该信箱的邮件交换资源记录; 邮件交换资源记录给出两个又见交换系统:邮件服务器B和C都可以接收,邮件服务器C优先级更高; 邮件服务器C需要再次查询邮件交换资源记录; 邮件服务器B; 用户B接收。
三、邮件报文交付的3个阶段 一、邮件通过用户代理软件传送到本地邮件服务器; 二、本地邮件服务器作为SMTP 客户,将报文转发给作为SMTP 服务器的远程服务器 三、POP3或IMAP4接收。 TCP连接过程: 1. 连接建立:连接是在发送主机的 SMTP 客户和接收主机的SMTP 服务器之间建立的。 SMTP不使用中间的邮件服务器。不管发送端和接收端的邮件服务器相隔有多远,不管在邮件的传送过程中要经过多少个路由器,TCP连接总是在发送端和接收端这两个邮件服务器之间直接建立。2. 邮件传送。3. 连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接。
四、SMTP协议的基本内容 SMTP命令和应答 主要的SMTP命令 主要的SMTP应答 关键词 变量 代码 说明 220 服务就绪 221 服务关闭传输通道 250 请求命令完成 251 用户不是本地的,报文将被转发 354 开始邮件输入 450 邮箱不可使用 500 语法错,不能识别命令 502 命令未实现 552 请求的动作异常终止,存储位置超过 553 请求的动作未发生,邮箱名不允许使用 关键词 变量 HELO 发送端的主机名 MAIL FROM 发信人 RCPT TO 预期的收信人 DATA 邮件的主体 QUIT RSET VRFY 需要验证的收信人名字 EXPN 需要扩展的邮件发送清单 HELP 命令名 主要的SMTP命令 主要的SMTP应答
邮件报文封装在邮件对象中 命令关键词 HELO MAIL FROM RCPT TO DATA QUIT RSET VRFY EXPN HELP 邮件对象由信封和内容两部分组成。内容又分为首部和主题两部分。 信封是一种SMTP协议命令。报文由报文行组成,各行之间用回车、换行符分隔。
邮件报文传送过程 —— 连接建立、报文传送、连接终止 邮件报文传送过程 —— 连接建立、报文传送、连接终止 客户端向服务器发请求 向客户端提供服务器域名 连接 建立 过程 向服务器提供客户端标识 通知邮件服务会话已实现 1)完整的SMTP协议豹纹交换过程由客户端请求使用熟知端口号25建立与服务器的TCP连接开始的 2)SMTP回送220响应客户的连接请求; 3)Helo启动与服务器之间的对话; 4)250 请求命令完成
报文传送过程——信封 MAIL FROM 报告发信人邮箱与域名 RCPT TO 报告收信人邮箱与域名
用连续的报文传送报文内容,每一行以CR、LF终止 报文传送初始化 报文 传送 过程 用连续的报文传送报文内容,每一行以CR、LF终止 354 开始邮件输入的响应 报文以 “.” 行结束
连接终止过程 客户端请求终止 服务器响应关闭 客户端在完成一次邮件报文的传输过程中始终起着控制作用
五、MIME协议的基本内容 MIME(Multi-Purpose Internet Mail Extensions) 非ASCII码数据转化 为7位网络虚拟终端 NVT ASCII码数据交给SMTP客户 SMTP的局限性是只支持7位网络虚拟终端NVT ASCII码格式; MIME则允许非7位NVT ASCII码数据通过SMTP传输
六、POP3、IMAP4协议与基于Web的电子邮件 POP的全称是 Post Office Protocol ,即邮局协议,用于电子邮件的接收,使用TCP的110端口,现在用的是第三版简称 POP3。 一种将存储在目地SMTP服务器中的邮件报文传送到用户的机制。
服务器更新状态: 真正删除 认证过程 POP3协议 工作流程 处理状态: 读取或者删除(标记) POP3 采用Client/Server工作模式,客户端软件安装在邮件客户机中,服务器软件安装在邮件服务器中。 当客户机需要服务时,客户端的软件(OutlookExpress或FoxMail)将与POP3服务器建立TCP连接。 此后要经过POP3协议的三种工作状态 首先是认证过程,确认客户机提供的用户名和密码 在认证通过后便转入处理状态,在此状态下用户可收取自己的邮件或做邮件的删除 在完成响应的操作后客户机便发出quit命令,此后便进入更新状态,将做删除标记的邮件从服务器端删除掉。
IMAP4 协议 (Internet Message Access Protocol) 在下载邮件之前可以检查邮件的头部 在下载邮件之前可以用特定的字符串搜索电子邮件的内容 可以部分地下载电子邮件 可以在邮件服务器上创建、删除邮箱,或更名 为了存放电子邮件,用户可以在文件夹中创建分层次的邮箱 IMAP4协议弥补了POP3协议的很多缺陷 . IMAP象POP那样提供了方便的邮件下载服务,让用户能离线阅读,但功能更强,更复杂。 不是所有邮件服务商都提供IMAP4服务。以前收费的才支持。现在QQ、163提供。 IMAP提供的摘要浏览功能可以让用户在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才决定是否下载。
基于web的电子邮件 邮件从 A 发送到网易邮件服务器是使用 HTTP 协议。 两个邮件服务器之间的传送使用 SMTP。 邮件从新浪邮件服务器传送到 B 是使用 HTTP 协议。 HTTP A B SMTP 网易邮件服务器 mail.163.com 新浪邮件服务器 mail.sina.com.cn