tcp/ip 基本原理 第八章 电子邮件

23
8-1 中中中中中中中中 中中中中 TCP/IP TCP/IP 基基基基 基基基基 基基基 基基基基 基基基 基基基基

Upload: vila

Post on 17-Jan-2016

122 views

Category:

Documents


0 download

DESCRIPTION

TCP/IP 基本原理 第八章 电子邮件. 本章学习要求 : 掌握: SMTP 协议原理及工作过程 掌握: POP3 工作原理 掌握: IMAP 与 POP3 的区别 掌握: RFC 822 的主要内容 了解: MIME 标准. 8.1 概述. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: TCP/IP 基本原理 第八章  电子邮件

8-1中国科学技术大学 远程教育

TCP/IPTCP/IP 基本原理基本原理

第八章 电子邮件第八章 电子邮件

Page 2: TCP/IP 基本原理 第八章  电子邮件

8-2中国科学技术大学 远程教育

本章学习要求:

掌握: SMTP 协议原理及工作过程掌握: POP3 工作原理掌握: IMAP 与 POP3 的区别掌握: RFC 822 的主要内容了解: MIME 标准

Page 3: TCP/IP 基本原理 第八章  电子邮件

8-3中国科学技术大学 远程教育

8.1 概述

电子邮件服务作为 Internet 上应用最多和最广的服务项目得到了非常广泛的应用,在网络应用中也起到非常重要的作用。如同其他的网络服务,电子邮件系统也有其使用的传输协议,包括 SMTP ( Simple Mail Transfer Protocol ,简单邮件传输协议)、 POP ( Post Office Protocol ,邮局协议)和 IMAP ( Internet Message Access Protocal ,消息访问协议)等,这些协议应用于电子邮件的发送和接收。一些邮件处理软件如 OutLook Express 和 FoxMail 等就是按照 SMTP 和 POP3 协议结合 Windows Sockets 套接字进行设计来收发邮件的。本文以 SMTP 协议为研究对象,在 Visual C++ 6.0 编程环境下按照 SMTP 协议通过套接字发送 SMTP 命令,接收并处理邮件服务器的反馈信息,从而实现对电子邮件的发送。

Page 4: TCP/IP 基本原理 第八章  电子邮件

8-4中国科学技术大学 远程教育

8.1.1 邮件传输协议 SMTP

在 Internet 中,电于邮件的传送是依靠简单电子邮件传送协议 SMTP 进行的。本节将介绍电子邮件的传送过程以及 SMTP协议的具体应用。电子邮件的传递过程

电子邮件系统采用所谓“存储转发”( Store and forward )工作方式。一个电子邮件从发送端计算机发出,在网络传输的过程中,经过多台计算机的中转,最后到达目的计算机,送到收信人的电子信箱。在 Internet 上,电子邮件的这种传递过程有点像普遍邮政系统中常规信件的传递过程。

当用户写好一封信投入邮政信箱以后,信件将由当地邮局接收下来,通过分检和邮车运输,中途可能需要经过一个又一个邮局转发,最后到达收信人所在的邮局。再由邮递员交到收信人手里或者投入他的信箱中。类似地,在 Internet 上,一个电子邮件首先由发送方计算机(客户机)的邮件管理程序将邮件进行分拆并封装成传输层协议 (TCP) 下的一个或多个 TCP 邮包,而这些 TCP 邮包又按网络层协议 (IP) 包装成 IP 邮包,并在它上面附上目的计算机的地址 (IP 地址 ) 。一旦客户机完成对电子邮件的这些编辑处理以后,客户机的软件便自动启动,根据目的计算机 IP 地址,确定与哪一台计算机进行联系。假如联系成功,便将 IP 邮包送上网络。

Page 5: TCP/IP 基本原理 第八章  电子邮件

8-5中国科学技术大学 远程教育

IP 邮包在 Internet 的传递过程中,通过路由选择,经特定路线上的某些路由器的转发,最后到达邮件的目的计算机。在接收端,电子邮件程序会把 IP 邮包收集起来,取出其中的信息,按照正确的次序复原成初始的邮件,最后传送给收信人。如果在传输过程中发现 IP 邮包丢失,目的计算机便要求发送端重发。传输过程中,如果一个邮包在传输前后的“检验和”不一致,则表明传输有错,这种邮包必须舍弃重发。尽管电子邮件的具体传递比较复杂,但是 TCP/ IP 软件采取了各种措施保证邮包的可靠传递。

一般来说,邮件总能从发送端计算机可靠地传递到目的计算机。如果目的计算机未开机或者机器本身暂时出现故障,电于邮件如何传递?在 TCP/IP 软件的电于邮件系统中,提供了一种所谓“延迟传递”( delayed delivery )机制,在远方的目的计算机暂时不能被访问的情况下,发送端的计算机会把邮件存储在缓冲储存区中,然后不断地进行试探发送。这种功能是由 TCP/IP 软件中一种称为 Spooling 的缓冲储存技术提供的,用户界面负责电子邮件的生成及处理,客户机和服务器相当于“电子化邮局”,负责电于邮件的传输;发送邮件缓冲储存区和接收邮件信箱相当于电于邮件库,在库里面为每一个用户设立一个电于信箱,用于存放用户邮件,直到用户登录对它进行处置。

Page 6: TCP/IP 基本原理 第八章  电子邮件

8-6中国科学技术大学 远程教育

用户首先利用用户界面生成邮件,然后把它交给发送邮件缓冲储存区,此后的发送过程均不需要用户参与。负责发送电于邮件的客户机是一个后台进程,当它检测到在缓仲储存区里有待发邮件时,便立刻将其取出,并把目的计算机的名字映射成 IP 地址,然后请求与对方服务器建立 TCP连接(包括形成 TCP 邮包和 IP邮包的一系列过程)。如果连接成功,便把 IP 邮包发送出去。经过一系列复杂的传递过程, IP 邮包到达对方服务器以后,服务器便将收到的邮件存入接收邮件信箱。只有客户机确信邮件己顺利到达对方信箱以后,它才会将相应的邮件从缓冲储存区中删除。

如果对方计算机关机或者机器出现故障,连接不成功,那么客户机将会记下发送时间,客户机的后台进程将周期性地检测(缓冲储存区,每当它发现有未发邮件或者用户传来新邮件时,它便立即启动发送程序进行发送。当发现某一个邮件很长时间(一般为三天)都发送不出去时,客户机便把它退回发送者的信箱。

电子邮件的传递过程是十分可靠的,这是因为 Internet 是建立在 TCP连接的基础上的。客户机在发送 IP 邮包之前, SMTP 首先将调用 TCP 服务原语(包括客户机的连接请求、服务器的响应和确认等原语)与目的计算机上的服务器建立TCP连接,连接成功以后才能进行传输。如果客户机与服务器之间不能建立 TCP连接,那么,电子邮件就无法发送到目地计算机的服务器上。在这种情况下,客户机是不会将待发的电子邮件从缓冲储存区中删除的。

Page 7: TCP/IP 基本原理 第八章  电子邮件

8-7中国科学技术大学 远程教育

SMTP 协议通讯模型

SMTP 协议是 TCP/IP 协议族中的一员,主要对如何将电子邮件从发送方地址传送到接收方地址,也即是对传输的规则做了规定。 SMTP 协议的通信模型并不复杂,主要工作集中在发送 SMTP 和接收 SMTP 上:首先针对用户发出的邮件请求,由发送 SMTP建立一条连接到接收 SMTP 的双工通讯链路,这里的接收 SMTP 是相对于发送 SMTP 而言的,实际上它既可以是最终的接收者也可以是中间传送者。发送 SMTP负责向接收 SMTP发送 SMTP 命令,而接收 SMTP 则负责接收并反馈应答。通讯模型用下图表示:

Page 8: TCP/IP 基本原理 第八章  电子邮件

8-8中国科学技术大学 远程教育

SMTP 协议的命令和应答  从前面的通讯模型可以看出 SMTP 协议在发送 SMTP 和接收 SMTP之间的会话是靠发送 SMTP 的 SMTP 命令和接收 SMTP 反馈的应答来完成的。在通讯链路建立后,发送 SMTP 发送 MAIL 命令指令邮件发送者,若接收 SMTP此时可以接收邮件则作出 OK 的应答,然后发送 SMTP继续发出 RCPT 命令以确认邮件是否收到,如果接收到就作出 OK 的应答,否则就发出拒绝接收应答,但这并不会对整个邮件操作造成影响。双方如此反复多次,直至邮件处理完毕。 SMTP 协议共包含 10 个 SMTP 命令,列表如下:

Page 9: TCP/IP 基本原理 第八章  电子邮件

8-9中国科学技术大学 远程教育

SMTP 命令 命令说明 HELLO < domain> < CRLF> 识别发送方到接收 SMTP 的一个 HELLO 命令

MAIL FROM:<reverse-path><CRLF> <reverse-path> 为发送者地址。此命令告诉接收方一个新邮件发送的开始,并对所有的状态和缓冲区进行初始化。此命令开始一个邮件传输处理,最终完成将

邮件数据传送到一个或多个邮箱

RCPT TO:< forward-path>< CRLF> < forward-path>标识各个邮件接收者的地址

DATA < CRLF> 接收 SMTP 将把其后的行为看作邮件数据去处理,以< CRLF> .< CRLF>标识数据的结尾。

REST < CRLF> 退出 / 复位当前的邮件传输 NOOP < CRLF> 要求接收 SMTP仅做 OK 应答。(用于测试) QUIT < CRLF> 要求接收 SMTP返回一个 OK 应答并关闭传输。

VRFY < string> < CRLF> 验证指定的邮箱是否存在,由于安全因素,服务器多禁止此命令。

EXPN < string> < CRLF> 验证给定的邮箱列表是否存在,扩充邮箱列表,也常禁止使用。

HELP < CRLF> 查询服务器支持什么命令

Page 10: TCP/IP 基本原理 第八章  电子邮件

8-10中国科学技术大学 远程教育

SMTP 协议的每一个命令都会返回一个应答码,应答码的每一个数字都是有特定含义的,如第一位数字为 2时表示命令成功;为 5 表失败; 3 表没有完成。一些较复杂的邮件程序利用该特点,首先检查应答码的首数字,并根据其值来决定下一步的动作。下面将 SMTP 的应答码列表如下:

应答码 说明 应答码 说明 501 参数格式错误 251 用户非本地,将转发向 <forward-path>

502 命令不可实现 450 要求的邮件操作未完成,邮箱不可用 503 错误的命令序列 550 要求的邮件操作未完成,邮箱不可用 504 命令参数不可实现 451 放弃要求的操作;处理过程中出错 211 系统状态或系统帮助响应 551 用户非本地,请尝试< forward-path> 214 帮助信息 452 系统存储不足,要求的操作未执行 220 <domain> 服务就绪 552 过量的存储分配,要求的操作未执行 221 <domain> 服务关闭 553 邮箱名不可用,要求的操作未执行 421 <domain> 服务未就绪,关闭传输信

道 354 开始邮件输入,以 "." 结束

250 要求的邮件操作完成 554 操作失败

Page 11: TCP/IP 基本原理 第八章  电子邮件

8-11中国科学技术大学 远程教育

SMTP 协议 在 TCP/IP 协议集中,提供了两个电子邮件传送协议:邮件传送协议

MTP ( Mail TransferProtocol )和简单邮件传送协议 SMTP ( Simple MaiI Transfer Protocol )。在 Internet 中,电子邮件的传送都是依靠 SMTP 进行的,它的最大特点就是简单,因为它只规定了电子邮件如何在 Internet 中通过发送方和接收方的 TCP 协议连接传送。而对其他操作均不涉及。

在 Internet 中,前台与用户交互的工作是由其他程序来承担的。例如,在 UNIX 系统中,用户使用前台的 mail 和 mailx 等程序,间接地调用了在 UNIX 系统内配置的 Sendmail 程序,实现 SMTP 协议对电子邮件的传送。

我们知道,计算机通信需要涉及客户机和服务器程序之间的交互。电子邮件系统也采用客户机 / 服务器结构。在后台, SMTP 协议就是按照客户机 / 服务器方式工作的。发信人的主机为客户方,收信人的邮件服务器成为服务器方,双方机器上的 SMTP 协议相互配合,将电子邮件从发信方的主机传送到收信方的信箱。在传送邮件的过程中,需要使用 TCP 协议进行连接。SMTP 协议规定了发送方和接收方双方进行交互的动作。发送方的主机与接收方的邮件服务器直接相连,从而建立了从发送方主机到接收方的邮件服务器之间的直接通道,这就保证了邮件的传送十分可靠。

当然,在传送邮件的过程中,双方需要交换一些应答信息,而这是通过使用 SMTP 协议的一组命令来实现的。

Page 12: TCP/IP 基本原理 第八章  电子邮件

8-12中国科学技术大学 远程教育

8.2 POP3 和 Internet 邮件管理协议 IMAP

一、 POP3 工作原理POP 的全称是 Post Office Protocol ,即邮局协议,用于电子邮件

的接收,它使用 TCP 的 110 端口。现在常用的是第三版 ,所以简称为 POP3 。 POP3 采用 Client/Server 工作模式。

在电子邮件软件的账号属性上设置一个 POP 服务器的 URL (比如 pop.163.com ),以及邮箱的账号和密码。当我们按下电子邮件软件中的收取键后,电子邮件软件首先会调用 DNS 协议对 POP 服务器进行解析 IP 地址,当 IP 地址被解析出来后,邮件程序便开始使用 TCP 协议连接邮件服务器的 110 端口,因为 POP 服务器是比较忙的,所以在这个过程中我们相对要等比较长的时间。当邮件程序成功地连上 POP 服务器后,其先会使用 USER 命令将邮箱的账号传给 POP 服务器,然后再使用 PASS 命令将邮箱的账号传给服务器,当完成这一认证过程后,邮件程序使用 STAT 命令请求服务器返回邮箱的统计资料,比如邮件总数和邮件大小等,然后 LIST 便会列出服务器里邮件数量。然后邮件程序就会使用 RETR 命令接收邮件,接收一封后便使用 DELE 命令将邮件服务器中的邮件置为删除状态。当使用 QUIT时,邮件服务器便会将置为删除标志的邮件给删了。

Page 13: TCP/IP 基本原理 第八章  电子邮件

8-13中国科学技术大学 远程教育

POP3 协议的工作过程工作过程大致可分为以下三步:

1. 授权过程:用户需要收发电子邮件时,通过拨号网络与 ISP提供的服务器建立 TCP连接,当连接成功时,服务器要求你输入用户名和密码以“验明正身”,如果被授权使用, POP3 服务器会对你的邮箱建立一个“独占锁定”,以方便服务器能够“不受打扰”地工作,同时也是为了在意外时避免邮件被删除。2. 传输过程:成功连接后,服务器便进入了传输过程:服务器首先启动“无响应自动退出计时器”,如果用户在规定的时限内没有和服务器进行通信,服务器便自动和用户断开 TCP连接,等待下一次连接。用户每当成功地和服务器通信一次,“无响应自动退出计时器”自动清零。用户首先得到的是由服务器检索到的有关邮件的基本信息 (比如邮件的份数 ) ,每当成功传输完一份邮件之后,服务器便对该邮件做上一个删除标记。如果整个传输过程一帆风顺,传输完之后便直接进入更新状态。否则,屏幕提示出错,服务器保留未传输的邮件,等待以后的存取。3. 更新状态:当顺利传输完邮件之后,或是因为某种原因致使传输过程中断,服务器都将进入更新状态,在这个过程中,服务器将删除信箱中已做了删除标记的邮件,以免信箱被涨破。同时保留那些未能成功传送的电子邮件。

Page 14: TCP/IP 基本原理 第八章  电子邮件

8-14中国科学技术大学 远程教育

二、 IMAP

IMAP 的全称是 Internet Message Access Protocol ,是指从邮件服务器上获取 email 的信息或直接收取邮件的协议。目前国内一些 ICP已推出基于 IMAP 的免费电子邮件服务,供网民们选择和使用。这将改变我们传统的收信习惯,使我们有更大的自主权,收信更方便。

POP3 和 IMAP 在使用上的区别

传统的 POP3 在收信时用户首先连接邮件服务器,验证完用户名和密码后,用户将得到有关所有邮件的信息 ( 如邮件的数量和大小 ) 。然后,就开始将服务器上存储的邮件下载到用户的硬盘上,每传完一份,服务器便对该邮件作一个删除记录,等待全部传输完毕后,存储在服务器上的所有邮件将被清空。也就是说在整个收信过程中,用户是无法知道那些信件的具体信息,只有照单全收入硬盘后,才能慢慢浏览和删除。使用 POP3 ,用户几乎没有对邮件的控制决定权。一旦碰上邮箱被轰炸,一连收到上百封一模一样的信,用户就不可能第一时间作出判断,分析信的内容和来信地址,决定是否下载或删除。解决的办法只有借助“收件箱助理”等工具,在下次连接时再根据预定的条件进行删除,实在很麻烦。有时候一时反应不过来,大量的垃圾邮件已登录你的硬盘,堆积在“收件箱”里。 

Page 15: TCP/IP 基本原理 第八章  电子邮件

8-15中国科学技术大学 远程教育

如果使用 IMAP 就轻松多了。它在连接后,可在下载前预览全部信件的主题和来源,即时判断是下载还是删除。 IMAP还具备智能存储功能,可使邮件保存在服务器上,那么办公一族就可以将单位处理不完的邮件,在回家后继续通过 IMAP 来查看了。既然生杀大权掌握在我们自己手里,那么那些可恶的垃圾邮件,就不再费时费事地下载到硬盘中,占领我们宝贵的空间和浪费我们的网费了。只要根据主题判定哪些是广告和垃圾,就可以直接在服务器上删除。

IMAP新账号的设置

设置 IMAP账号与设置 POP3 的过程是基本一样的,只是在“电子邮件服务名”的填写中将“接收的邮件服务器是 POP3 服务器”改成 IMAP 就行了。然后设置 IMAP 服务器的地址,比如 21CN 网站的 IMAP 地址是: 202.104.32.238 。其他方面的设置应该没多大的问题。设置完成后,与普通 POP3账号不同的是,系统会为该账号自动建立一个文件夹。此时它会告诉你“是否愿意下载你刚刚创建的 IMAP账号的文件列表?”,若已连上 Internet 就选“是”。

Page 16: TCP/IP 基本原理 第八章  电子邮件

8-16中国科学技术大学 远程教育

8.3 信文格式 RFC822 与邮件扩展标准 MIME

一、信文格式 RFC822

RFC 822 消息格式于 1982年通过,定义了 Internet 文本邮件的标准消息格式。随着电子邮件的发展,这种消息格式不再能满足用户的需要,它的缺点越来越明显,主要有以下几个方面 :

只规定了文本消息格式,对于非文本消息如多媒体消息的格式没有规定。即使是文本消息,也只能处理 ASCII 字符集,对于非该字符集的字符不能处理。

RFC 822限制邮件消息内容为 7位 ASCII码短行,这就迫使用户把非文本数据转换成 7位可打印的 ASCII 字符。

RFC 822 的不足还表现在它与 X400 系统互通的情况下。 X400 消息可以包含非文本信体,而 RFC822 消息如上所述不包含非文本信体 ;X400消息内容为八比特流, RFC 822 消息内容是 7位 ASCII码。因此, X400系统与 RFC 822互通时,或者把非文本消息转换为 ASCII格式,或者丢弃该消息并通知用户,这是用户不希望发生的情况。因为即使 UA( 用户代理 )不能处理这些非文本消息,用户还可有一些外部机制,从 UA 中提取有用的信息。

由于 RFC 822 存在这些缺点,因此在发展多媒体电子邮件时, Internet 用户希望能有一种更好的消息格式标准替代它, MIME 就是这样一种标准。

Page 17: TCP/IP 基本原理 第八章  电子邮件

8-17中国科学技术大学 远程教育

二、邮件扩展标准 MIME

MIME 的特点     MIME 是一种新型邮件消息格式 , 它具有下列特点 :

可以在一份消息中包含多个信体 ;

可以表示 ASCII 文本和非 ASCII 文本 ;

可以表示图像、话音以及二进制数据等非文本消息 ;

可以使用多语种和多字体表示消息 ;

可以扩展处理新出现的消息类型。MIME 标题字段

MIME 是 RFC 822 的扩展。它描述了四种标题字段 , 用来表示各种信体类型 , 如文本、话音和图像等 , 并不会与现有的 RFC822 邮件发生冲突 :

1.MIME版本号:用于声明消息是 MIME 消息 , 使 UA 能正确处理消息。2. 内容类型:用于描述消息信体中数据的类型和子类型 , 使接收方 UA 能选择适当的方法处理这些数据。 MIME 定义了七种内容类型和相应的子类型 :

①" 文本 " 内容类型 , 是默认的内容类型 , 可用多种字符集表示文本消息 ,可用标准方式表示格式化的文本。 plain 子类型 , 表明消息是未格式化的文本。此外还可用其它格式表示扩展文本。显示 " 文本 " 消息时不需要特殊的软件 ,但是要支持指定的字符集。

Page 18: TCP/IP 基本原理 第八章  电子邮件

8-18中国科学技术大学 远程教育

② " 多部分 " 内容类型 , 用于在消息中包含多个不同数据类型的信体部分。两个相邻信体部分之间用定界符分隔。每一部分的数据可以单独编码。

当信体部分相互独立并且具有某种次序时 , 使用 "混合 " 子类型。UA 把不认识的 " 多部分 " 子类型作为 "混合 " 类型处理。

" 可选 " 子类型用多种格式表示同一数据 , 使接收方能根据自身环境选择最佳的消息表示格式。

" 文摘 " 子类型中的每一个信体部分的默认类型是 " 消息 RFC822", 而不是 " 文本 /plain", 这样做提供了更多可读的文摘。

“ 并行”子类型指示消息中的所有信体部分需要同时显现。 ③ " 应用 " 内容类型 , 用于传输应用数据或二进制数据 , 如基于邮件的文

件传送、扩展表、基于邮件的日程安排系统的数据和 "活动 " 邮件。这些数据在用户浏览之前必须由应用程序进行处理。 " 应用 " 内容类型定义了下列两种子类型 :

" 八比特流 ",指示信体中包含的是二进制数据。当邮件阅读器遇到不能识别的内容类型值时 ,阅读器把该邮件作为 " 应用 / 八比特流 " 类型处理。

"PostScript", 用于传送包含 PostScript 文档的信体。

Page 19: TCP/IP 基本原理 第八章  电子邮件

8-19中国科学技术大学 远程教育

④ " 消息 " 内容类型 , 用于封装其它种类的邮件消息。其子类型主要用于被转发消息或被拒绝消息。

子类型“ RFC 822"指示信体中包含的消息是被封装的 RFC822消息。这里的 RFC 822 消息实际上是指MIME 消息。

"部分 " 子类型允许大消息作为几个独立的邮件块发送和投递 ,接收方 UA 可以自动恢复原来的消息。当中间传送代理限制单个消息的小时可以使用这种消息类型。在 "部分 " 类型中 ,只允许使用 "7位 " 内容传送编码。

“外部信体”子类型指示消息中没有包含实际的信体数据 ,真正的数据是作为外部引用给出的 , 消息中只包含了访问这些数据所需要的信息 , 接收者可以根据这些信息使用 FTP 、 TFTP 等文件传送系统获取数据。

⑤ "图像 " 内容类型 ,指示信体中包含静态图像。 "JPEG" 和 "GIF" 子类型表示两种专用的图象格式。

⑥ "音频 " 内容类型 ,指示信体中包含音频或话音数据。 " 基本 " 子类型指示信体是使用 8位 PCM 编码的音频数据。

⑦ "视频 " 内容类型 ,指示信体中包含视频 ,还可能有颜色和 "音频 "数据。子类型 "MPEG" 表示信体是用 MPEG 标准编码的视频数据。

Page 20: TCP/IP 基本原理 第八章  电子邮件

8-20中国科学技术大学 远程教育

3. 内容传送编码:内容传送编码提供了数据类型的本地表示与能够用 7位邮件传送协议进行数据交换的表示法之间的映射。 MIME 定义了五种编码机制 :

“7位”、“ 8位”、“二 进 制”、“基本 64” 和 “ quoted-printable” 。 "8位 " , "7位 " 和 "二进制 " 用来指示信体中包含的数据的类型,它们没有进行编码。 "quoted-printable" 用来表示大部分由八位比特组成的数据,这些八位比特与 ACSII 字符中的可打印字符对应。经过 "quoted-printable" 编码生成的八比特序列,邮件传送中不可能被修改。 " 基本 64" 内容传送编码用来表示任意八位特序列。它用 ASCII 的 65 个字符子集 (64 个打印字符和一个专用字符 "=") 对数据编码 ,每 6位原始数据可以用一个打印字符表示。因此当输入 24比特时 ,输入 4 个已编码字符。

4. 附 加 的 标 题 字 段: 用于进一步描述消息信体中的数据。它具有下列两种字段 :

内容描述,用于简述信体内容 ,它使用 ASCII 文本。为了满足用户的特殊需要和适应今后的发展 , MIME还规定了扩展机制 ,允许对各种子类型值 、字符集名 、内容传送编码值以及字段值进行扩展。

Page 21: TCP/IP 基本原理 第八章  电子邮件

8-21中国科学技术大学 远程教育

MIME 用户代理 (UA)

MIME 邮件系统的基础是具有 MIME 功能的 UA 。这种用户代理不仅应该能识别和显示MIME 消息 , 而且应该能建立 MIME 消息。为了实现这一点 ,MIME UA 应包含各种媒体的编辑器、处理器以及 MIME

消息成器和分析器、分配器。发送方 UA调用各种媒体编辑器 ,建立各自的信体部分 , 通过合成器添加适当的标题字段 , 将各个部分合成在一起 ,

生成 MIME 消息。 MIME 消息经由邮件传送系统传送到对方 UA 。对方UA 接收到消息后 , 先使消息经过消息分析器 , 根据消息的标题信息识别不同的信体 ,然后将各个信体经分配器送至相应的处理器中进行处理。

MIME只是一种消息格式 , 它对于消息传送系统未作任何修改 ,

它的消息传送系统与现有的 Internet 消息传送系统一样 ,只是信息格式不同 , 因此MIME UA 可以在现有 UA 基础上经过扩展而得到 , 也可以重新设计单独的 MIME UA 。由于 MIME 是一种可扩展的、模块化的标准 ,M

IME UA 的功能很容易扩展。为了增加对某一种新消息类型的支持 , 用户只增加这种消息的处理程序 ,然后通知 UA何时以及如何调用该程序即可。

Page 22: TCP/IP 基本原理 第八章  电子邮件

8-22中国科学技术大学 远程教育

尽管 MIME UA 能够通过扩展处理新的消息类型 ,但是它毕竟不能处理全部的消息类型。而多媒体邮件包含的消息类型各种各样 , 其中很可能包含一些 UA 不能处理的消息 , 如使用不同的语音编码方式生成的话音消息 , 一旦遇到这种情况 ,大多数 UA只能丢弃或拒绝消息。通过建立配置文件可以解决这个问题。在网络中建立一个公共配置文件 , 网络中所有的 UA都可以访问它。当某个 UA创 建了一种新的消息类型 , 就向该文件中写入处理这种消息所需的程序名和程序的地址。当其 UA遇到这种消息时 , 就可以查询配置文件 , 了解如何处理这种消息。通过配置文件可以在不增加UA 复杂程度的情况下 ,扩展 UA 的功能。例如 , 在 UA 中只给出一种语音编码和解码方法 , 其它的方法可以查询配置文件 , 这样 U

A 可以处理几乎所有的语音编码文件。 Internet 的编程语言 Java

的出现使得这种方法更具有广阔的前景。

Page 23: TCP/IP 基本原理 第八章  电子邮件

8-23中国科学技术大学 远程教育

本章习题

参见教师网页: http://staff.ustc.edu.cn/~leeyi