Presentation is loading. Please wait.

Presentation is loading. Please wait.

第13章 邮件传输协议 13.1 概述 13.2 电子邮件地址 13.3 邮件转发与网关 13.4 电子邮件信息格式

Similar presentations


Presentation on theme: "第13章 邮件传输协议 13.1 概述 13.2 电子邮件地址 13.3 邮件转发与网关 13.4 电子邮件信息格式"— Presentation transcript:

1 第13章 邮件传输协议 13.1 概述 13.2 电子邮件地址 13.3 邮件转发与网关 13.4 电子邮件信息格式
13.5 简单邮件传输协议(SMTP) 13.6 邮件获取协议 13.7 通用因特网邮件扩充(MIME)

2 第13章 邮件传输协议 简单邮件传送协议SMTP(Simple Mail Transfer Protocol)[RFC 821]和电子邮件报文格式MAIL[RFC 822]最早出现在1982年,是ARPANET上的电子邮件标准,现在它们都已成为因特网的正式标准。

3 问题:SMTP只能传送可打印的ASCII码邮件。
解决:1993年又制定了新的电子邮件标准[RFC 1521,1522],即“通用因特网邮件扩充” MIME (Multipurpose Internet Mail Extensions)。MIME在其邮件首部中说明了邮件的数据类型(如文本、声音、图像、视频等)。MIME邮件可同时传送多种类型的数据。

4 13.1 概述 通常,一封电子邮件的发送需要经过用户代理、客户邮件服务器和服务器端邮件服务器等三个程序的参与,并使用邮件传输和获取协议(如SMTP和POP3,或IMAP)。 图14-1 表示电子邮件的工作过程。

5 当用户发送一封电子邮件时,首先寻找自己的客户邮件服务器。
客户邮件服务器得到了邮件后,将它保存在自身的缓冲队列中,然后,根据邮件的地址,查询到服务器端邮件服务器,并且通过电子邮件协议传送。根据目标地址确定信件需要投递的服务器时,通过DNS服务实现。

6 例如,有一封邮件的目标地址是yourmail@yourserver. com,那么,邮件服务器首先要解析“yourserver
,然后,通过TCP连接将信件投递给该服务器。 服务器端邮件服务器接收到邮件之后,将其存储在本地缓冲区,直到电子邮件的接收者察看自己的电子信箱。每个用户必须拥有服务器上存储信息的空间(称为信箱)才能接受邮件。

7 用户代理UA(User Agent)是用户与电子邮件系统的接口,一般它是一个在用户PC机中运行的程序。
1. 用户代理 用户代理UA(User Agent)是用户与电子邮件系统的接口,一般它是一个在用户PC机中运行的程序。 用户代理接受用户输入的各种指令,将用户的邮件传送至其邮件服务器或者通过POP、IMAP将信件从其邮件服务器获取到本机上。(foxmail,outlook express) 用户代理至少应当具有以下三个功能: 1) 撰写 2) 显示 3) 处理 能方便地显示出来信(包括声音和图像)。 收信人应能根据情况按不同方式对来信进行处理。例如阅读后删除、存盘、打印、转发;读取信件之前先查看邮件的发信人和长度;对于不愿收的信件可直接在邮箱中删除等。

8 邮件服务器是电子邮件系统的核心构件,因特网上所有的ISP都有邮件服务器。
2.邮件服务器 邮件服务器是电子邮件系统的核心构件,因特网上所有的ISP都有邮件服务器。 邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。 邮件服务器默认监听25号端口接受请求。 协议 SMTP;POP3;IMAP 返回

9 13.2 电子邮件地址

10 电子邮件地址 地址通常为: 例如:

11 注意:标识收信人邮箱名的字符串在邮箱所在计算机中必须是惟一的。
由于一个主机的域名在因特网上是惟一的,而每一个邮箱名在该主机中也是惟一的,因此在因特网上的每一个人的电子邮件地址都是惟一的。这一点对保证电子邮件能够在整个因特网范围内的准确交付是十分重要的。 返回

12 在发送电子邮件时,邮件服务器只使用电子邮件地址中的后一部分,即目的主机的域名。只有在邮件到达目的主机后,目的主机的邮件服务器才根据电子邮件地址中的前一部分(即收信人邮箱名),将邮件存放在收件人的邮箱中。

13 13.3 邮件转发与邮件网关 1.邮件转发 许多邮件系统包含一个邮件分发器或邮件转发器,这是一个能转发信息副本的程序软件。
13.3 邮件转发与邮件网关 1.邮件转发 许多邮件系统包含一个邮件分发器或邮件转发器,这是一个能转发信息副本的程序软件。 邮件转发软件在本地网点中将邮件中使用的邮件地址映射为一个或多个新的邮件地址即别名。

14 使用别名增加了邮件系统的功能并为用户带来了方便,别名映射可以是多对一或一对多。
1) 多对一映射:映射一组标识符到单个人,允许单个用户拥有多个邮件标识符,包括昵称和职务。

15 2) 一对多映射:将多个收信人与一个标识符相关联。可建立一个邮件分发器,即接收到一个邮件就将其发送给一大批的收信人。与这样一批收信人集合相关联的是一个标识符,称为邮件发送清单(mailing list)。邮件列表通常放在数据库中,每一项是一组电子邮件地址。

16 在邮件发送清单中的收信人不一定都必须在本地,一个邮件发送清单中的收信人即使都在其他网点也是可以的。邮件分发器使得一大批人能够通过电子邮件进行通信而发信人不需要在发信时清楚地指明所有的收信人。

17 因特网上有许多邮件发送清单是开放的,任何人可自由地将其电子邮件地址通过电子邮件加入到某个邮件发送清单中,以便今后在自己的邮箱中自动收到所需信息的邮件。
当电子邮件信息到达时,邮件分发器检查目标地址。如果目标地址列表在数据库中出现,分发器就将信息转发给表中的每个地址。 表13.3显示了一个邮件分发器数据库的实例。(P209)

18

19 2.邮件网关 若邮件发送清单很大,那么向每一个收信人转发邮件仍需很长的处理时间。因此人们往往采用电子邮件网关 ( gateway) 或电子邮件中继( relay)专门处理邮件发送清单。电子邮件网关在没有人工干预的情况下利用计算机程序自动处理邮件。这种程序叫做清单管理程序 。

20

21 开始时,用户利用发送方计算机,将单个副本从发送方的计算机传到电子邮件网关。
电子邮件网关在查询邮件列表的数据库后,邮件分发器生成一个发送信息副本的请求。 网关计算机上的邮件传输程序将生成的每个副本通过因特网发送给接收方的计算机。 最后,接收方计算机利用服务器将副本存进接收方的邮箱。 返回

22 13.4 电子邮件信息格式 电子邮件:信封+内容 内容:首部+信体(body) 首部:发送方、接收方、发送日期和内容格式等。
信体:可以包含任意文本。

23 [RFC 822]规定了邮件内容中的首部格式,邮件的信体部分由用户自由撰写。用户写好首部后,邮件系统将自动地将信封所需的信息提取出来并写在信封上,用户不需要填写电子邮件信封上的信息。
首部由多行构成,首部行:关键字+冒号+信息

24 下表是一个电子邮件信息的实例

25 首部中的关键字是From、To、Date、Subject。

26 Date:发信日期。一般由邮件系统自动填入。
Subject:是邮件的主题。它反映了邮件的主要内容。主题便于用户查找邮件。

27 表14-3列出了一些在因特网电子邮件中可以找到的普通关键字,以及使用它们的目的。
返回

28 13.5 简单邮件传输协议(SMTP) 1.概述 简单邮件传输协议(SMTP)的目标是可靠高效地传送邮件。
每条命令用4个字母组成 每一种响应信息一般只有一行信息: 3位数字代码[+简单的文字说明]

29 下表给出了SMTP的最小命令集及其功能。

30 SMTP的应答码及其含义。

31 2. SMTP模型 当用户发出邮件请求时,SMTP发送者建立与SMTP接收者之间的一个双向传送通信通道。SMTP命令由SMTP发送者发出,由SMTP接收者接收,而应答则反方面传送。

32 3.SMTP的使用 SMTP通信过程中的连接建立、邮件传送、连接释放三个阶段。 (1) 连接建立 SMTP连接是在发送主机即客户服务器的SMTP客户和接收主机的SMTP服务器之间建立的。

33 SMTP客户每隔一定时间对邮件缓存扫描一次。如发现有邮件,就使用SMTP的熟知端口号25与目的主机的SMTP服务器建立TCP连接。不管发送端和接收端的邮件服务器相隔有多远,不管在邮件的传送过程中要经过多少个路由器,TCP连接总是在发送端和接收端这两个邮件服务器之间直接建立,而不会使用中间的邮件服务器。

34 连接建立后,SMTP服务器发出“220 Service ready”。然后,SMTP客户向SMTP服务器发送HELO命令,附上发送方的主机名。
SMTP服务器若有能力接收邮件,则回答:“250 OK”,表示已准备好接收。若SMTP服务器不可用,则回答“421 Service not available”。 如在一定时间内发送不了邮件,则将邮件退还发信人。

35 2.邮件传送 SMTP客户服务器获得接收服务器的肯定回复后,发出MAIL命令。MAIL命令后面有发信人的地址。如: MAIL FROM: 若SMTP服务器已准备好接收邮件,则回答“250 OK”。否则,返回一个代码,指出原因。如:451(处理时出错),452(存储空间不够),500(命令无法识别)等。

36 SMTP的RCPT命令判断接收端系统是否已做好接收邮件的准备,并将同一个邮件发送给一个或多个收信人,格式为:
RCPT TO:<收信人地址> 每发送一个命令,都有相应的信息从SMTP服务器返回,如:“250 OK”,表示指明的邮箱在接收端的系统中。或“550 No such user here”,即不存在此邮箱。

37 SMTP的DATA命令,表示开始传送邮件内容。SMTP服务器返回的信息是:“354 Start mail input;end with <CRLF>.<CRLF>”。若不能接收邮件,则返回421(服务器不可用),500(命令无法识别)等。

38 发送完毕后,再发送<CRLF> .<CRLF> ,表示邮件内容结束。
接着SMTP客户就发送邮件的内容。 发送完毕后,再发送<CRLF> .<CRLF> ,表示邮件内容结束。 若邮件收到了,则SMTP服务器返回信息“250 OK”,或返回差错代码。 返回

39 3.连接释放 SMTP客户应发送QUIT命令,表示客户邮件发送完毕。 SMTP服务器返回的信息是“250 OK”。 SMTP客户服务器再发出释放TCP连接的命令,待SMTP服务器回答后,邮件传送的全部过程即结束,从而释放SMTP连接。

40 13.6 邮件获取协议 SMTP用于发送邮件,POP3和IMAP用于接收邮件。IMAP 提供了一个在远程服务器上管理邮件的手段,它与POP 协议相似,但功能比POP 要多,功能包括:只下载邮件的标题、建立多个邮箱和在服务器上建立保存邮件的文件夹。

41 POP3 邮局协议-版本3 1. 简介 邮局协议POP(Post Office Protocol)是一个非常简单、功能有限的邮件读取协议。

42 2.POP3命令及应答。 POP3使用客户服务器工作方式。在接收邮件的用户的PC机中必须运行POP客户程序,而在其ISP的邮件服务器中则运行POP服务器程序。

43 POP3命令由一个命令和一些参数组成。所有命令以一个CRLF对结束。命令和参数由可打印的ASCII字符组成,它们之间由空格间隔。命令一般是三到四个字母,每个参数却可达40个字符长。

44 表给出POP3最小命令集。

45 3.工作模式 POP3有两种工作模式:删除模式和保持模式。 删除模式表示一旦邮件交付给用户的PC机,POP服务器就不再保存这些邮件。 保持模式指在收信人读取邮件后,此邮件仍保留在POP服务器上。 用户在取回邮件并中断与POP服务器的连接后,可在自己的PC机上慢慢处理收到的邮件。因此POP实际上是一个脱机协议。

46 4. 基本操作 服务器侦听TCP端口110。 POP3客户和服务器建立TCP连接后,会话进入鉴别状态,在此状态中,客户必须通过POP3服务器的鉴别。若鉴别成功,则服务器就打开客户的邮箱,进入处理状态。 在处理状态中,客户请求服务器提供信息(如邮件列表)或完成动作(如取走指定的邮件报文)等服务。 最后,当客户发出QUIT命令时,会话就进入更新状态,连接终止。

47

48 因特网报文存取协议IMAP是斯坦福大学在1986年开发的。IMAP的最新版是IMAP第4版修订版1(RFC 2060)。
1.工作原理 IMAP4的三种工作模式:离线、在线和断连方式。 1)离线工作模式 2)在线工作模式 3)断连工作模式 离线方式与POP3相同。客户软件把邮箱存储在本地硬盘上以进行读取和撰写信息的工作。当需要发送和接收消息时,用户才连接服务器。 虽然邮箱由客户软件处理,但是用户在线访问的邮箱始终存储在邮件服务器上。在线方式主要是由位置固定的用户使用,一般在快速LAN连接下进行。 客户软件把用户选定的消息和附件复制或缓存到本地磁盘上,而原始副本则保留在邮件服务器上。 用户可以自己处理缓存的邮件,当以后用户重新连接邮件服务器时,这些邮件可以与服务器进行再同步。 当前,该特性主要由邮件服务器实现,很少有客户软件支持断连方式。

49 2.与POP3的简单比较 1)相同之处 IMAP和POP都按客户服务器方式工作。 对于POP3和IMAP4协议,进来的邮件都存储在中央的邮件服务器上。用户使用遵循协议的邮件客户软件来连接到邮件服务器上,先进行身份验证,鉴定登录名和口令,然后用户才获得访问邮箱的权利。 有一些POP3服务器也提供了在线功能,但是,没有达到IMAP4的性能。

50 POP3是存储转发的信息交换系统。POP3邮件服务器把消息发送给客户,自己并不在服务器上保存副本。
2)不同之处 POP3是存储转发的信息交换系统。POP3邮件服务器把消息发送给客户,自己并不在服务器上保存副本。 IMAP通过客户机的电子邮件程序可在服务器上创建并管理邮件文件夹或邮箱、删除邮件、查询某封信的一部分或全部内容,完成所有这些工作时都不需要把邮件从服务器下载到个人计算机上。 IMAP也有自己的缺点,如果用户没有将邮件复制到自己的PC机上,则邮件一直是存放在IMAP服务器上。因此用户需要经常与IMAP服务器建立连接。

51 在使用IMAP时,所有收到的邮件同样是先送到ISP的邮件服务器的IMAP服务器。而在用户的PC机上运行IMAP客户程序,然后与ISP的邮件服务器上的IMAP服务器程序建立TCP连接。用户在自己的PC机上就可以操纵ISP的邮件服务器的邮箱,就像在本地操纵一样,IMAP是一个联机协议。

52 13.6.3 通用因特网邮件扩充(MIME) SMTP不能传送可执行文件或其他的二进制对象。
通用因特网邮件扩充MIME(Multipurpose Internet Mail Extentions) 用以克服电子邮件协议SMTP的一些缺点: SMTP不能传送可执行文件或其他的二进制对象。 SMTP限于传送7位的ASCII码。许多其他非英语国家的文字无法传送。 SMTP服务器会拒绝超过一定长度的邮件。 某些SMTP的实现并没有完全按照[RFC 821]的SMTP标准。

53 1.MIME概述 MIME没有改动SMTP或取代它。MIME是一个补充协议,它使得非ASCII数据可以通过SMTP传送。MIME继续使用目前的[RFC 822]格式,但增加了邮件主体的结构,并定义了传送非ASCII码的编码规则。 MIME邮件可在现有的电子邮件程序和协议下传送。 MIME主要包括以下三部分内容[RFC l521,1522]: 1)5个新的邮件首部字段,它们可包含在[RFC 822]首部中。这些字段提供了有关邮件主体的信息。

54 2)定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。
3)定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。

55 MIME增加的5个新的邮件首部如下(有的可以是选项):
1)MIME-Version:标识MIME的版本。规定代理支持的MIME版本。 2)Content-Description:选项,内容说明,这是可读字符串,说明此邮件是什么(图像、语音、视频)。 3)Content-Id:邮件的惟一标识符,可选项,内容ID,用户代理可用其值识别MIME的入口。

56 4)Content-Transfer-Encoding:内容传送编码,在传送时邮件的主体是如何编码的。
5)Content-Type:说明邮件的性质,共有7个基本内容类型和15种子类型。 2.内容传送编码 MIME可传输五种编码格式: 1)7bit ASCII码(短行),每行不能超过1000个字符,NVT ASCII是Internet 报文的缺省格式。 2) 8bit非ASCII码(短行) ,每行不能超过1000个字符。

57 3) 二进制码(不限长度行),每行可以超过1000个字符。
4) 64基编码,对于任意的二进制文件,可用64基编码。 5)可打印(quoted-printable),针对八位邮件传输,若有第八位时,可使用可打印编码通过Internet的7位值 系统传输8位数据。

58 64基编码方法如下: 先将24bit的代码划分为4个6bit组。6bit组的二进制代码共有64种不同的值,从0到63。用A表示0,用B表示1,等等。26个大写字母排列完毕后,接下去再排26个小写字母,再后面是10个数字,最后用“+”表示62,而用“/”表示63。 再用两个连在一起的等号“==”和一个等号“=”分别表示最后一组的代码只有8或16比特。 回车和换行都忽略,它们可在任何地方插入。

59

60 base64编码的例子,假设有二进制代码,共24bit:01001001 00110001 00111001。先划分为4个6bit组,即:
(18) (19) (4) (57) 对应的base64编码为:STE5。其ASCII码为: 三个字符用四个字符传。 适用于ASCII码不多的情况。

61 另一种编码称为quoted-printable,这种编码方法可用于当邮件中包含了非英文的文本,例如汉字。
这种编码方法的要点:①对于可打印的ASCII码,除等号“=”外,都不改变。②等号“=”以及编号超过127的ASCII码的编码方法是:先将每个字节的二进制代码用两个十六进制数字表示,然后在前面再加上一个等号“=”。

62 例如,汉字的“系统”的二进制编码是:1011111110100101 1011110010100011,其十六进制数字表示为:BFA5BCA3,
用quoted-printable编码表示为:=BF=A5=BC=A3。 而等号“=”的二进制代码为 ,即十六进制的3D,因此等号“=”的quoted-printable编码为“=3D”。采用quoted-printable编码时,一个非ASCII字符用三个ASCII字符传送。

63

64 3.内容类型 MIME标准规定Content-Type说明必须含有两个标识符,即内容类型(type)和子类型(subtype),中间用“/”分开,例如text/plain。 标准定义了7个基本内容类型和15种子类型。除了标准类型和子类型,MIME允许发信人和收信人定义专用的内容类型。但为避免可能出现名字冲突,标准要求为专用的内容类型选择的名字要以字符串x-开始。

65 Text Image Audio Video Application Message Multipart 内容类型 子类型 说明 Plain
无格式文本 Richtext 有少量格式命令的文本 Image Gif GIF格式的静止图像 Jpeg JPEG格式的静止图像 Audio Basic 可听见的声音(8KHz的单通道声音) Video Mpeg MPEG格式的影片 Application Octet-stream 不间断字节序列 Postscript Postscript可打印文档 Message Rfc822 MIME RFC 822邮件 Partial 为传输将邮件分割开,邮件的一部分 External-body 邮件必须从网上获取(引用) Multipart Mixed 按规定顺序的几个独立部分 Alternative 不同格式的同一邮件 Parallel 必须同时读取的几个部分 digest 每个部分是一个完整的RFC822邮件

66 MIME的内容类型中的multipart使邮件增加了相当大的灵活性。标准为multipart定义了四种可能的子类型。
1)mixed子类型允许单个报文含有多个相互独立的子报文,每个子报文可有自己的类型和编码。mixed子类型报文使用户能够在单个报文中附上文本、图形和声音,或者用额外数据段发送一个备忘录,类似商业信笺含有的附件。 2)alternative子类型允许单个报文含有同一数据的多种表示。当给多个使用不同硬件和软件系统的收信人发送备忘录时,这种类型的multipart报文很有用。

67 在mixed后面还要用到一个关键字,即Boundary=,此关键字定义了分隔报文各部分所用的字符串(由邮件系统定义),只要在邮件的内容中不会出现这样的字符串即可。当某一行以两个连字符“--”开始,后面紧跟上述的字符串,就表示下面开始了另一个子报文。 3)parallel子类型允许单个报文含有可同时显示的各个子部分(如图像和声音子部分必须一起播放)。 4)digest子类型允许单个报文含有一组其他报文。类似于mixed,但缺省值是message/RFC822

68 本章要点: 使用电子邮件协议(如SMTP和POP3,或IMAP)的电子邮件发送需要经过用户代理、客户邮件服务器和服务器端邮件服务器等三个程序的参与。 许多邮件系统包含一个邮件分发器或邮件转发器,这是一个能转发信息副本的程序软件。 RFC 822规定了邮件内容中的首部格式,而对邮件的主体(body)部分则让用户自由撰写。

69 简单邮件传输协议(SMTP)的目标是可靠高效地传送邮件,SMTP协议用于发送邮件,MIME用于编码,POP3用于接收邮件,IMAP 提供了一个在远程服务器上管理邮件的手段。
返回


Download ppt "第13章 邮件传输协议 13.1 概述 13.2 电子邮件地址 13.3 邮件转发与网关 13.4 电子邮件信息格式"

Similar presentations


Ads by Google