第13章 邮件传输协议分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第13章 邮件传输协议
• 简单邮件传送协议SMTP[RFC 821]和电 子邮件格式标准 [RFC 822]最早出现在 1982年,当初是ARPANET上的电子邮 件标准,现在已成为因特网的电子邮件 标准。 • 早期的问题:SMTP只能传送ASCII码邮 件。
Page 1
• 解决:1993年又制定了新的电子邮件标 准 “通用因特网邮件扩展” MIME [RFC 1521,1522] 。MIME邮件可同时 传送多种类型的数据(如文本、声音、图 像、视频等) 。 • 另外,客户读取邮件时还需要使用邮件 读取协议。
Page 13
首部中的关键字是From、To、Date、Subject。 • From:表示发信人的电子邮件地址。一般由邮 件系统自动填入。 • To:填入一个或多个收信人的电子邮件地址。 在电子邮件软件中,用户将经常通信的对象姓 名和电子邮件地址写到地址簿中。当撰写邮件 时,只需打开地址簿,点击收信人名字,收信 人的电子邮件地址就会自动地填入到合适的位 置上。 • Date:发信日期。一般由邮件系统自动填入。 • Subject:是邮件的主题。它反映了邮件的主 要内容。主题便于用户查找邮件。
Page 9
13.3 别名与邮件网关
1.别名 • SMTP允许用一个别名来表示几个不同的电子 邮箱,另外,一个电子邮箱也可以定义多个不 同的电子邮件地址。 • 使用别名为用户带来了方便,别名映射可以是 多对一或一对多。
Page 10
1) 多对一映射:多个电子邮箱地址对应一个用 户邮箱。 2) 一对多映射:有时同一份邮件要发送给多个 不同的收信人时,用户就可以创建一个别名, 此别名对应一个邮件发送清单,即多个电子 邮箱。
•
功能:发送和接收邮件,同时还向发信人报告邮件 传送的情况(已交付、被拒绝、丢失等)。 • 邮件服务器默认监听TCP 25端口看是否有客户请 求。 3. 电子邮件所使用协议 邮件传输协议:SMTP + MIME; 邮件接收协议:POP3 或 IMAP
Page 6
返回
电子Βιβλιοθήκη Baidu件传送过程
• 当用户代理发送一封电子邮件时,首先使用SMTP协 议发送到客户端的邮件服务器。 • 客户邮件服务器得到了邮件后,将它保存在自身的缓 冲队列中,然后,根据邮件的目的地址,查询服务器 端的邮件服务器,并且通过SMTP传送。根据邮件的 目的地址确定服务器端邮件服务器时,需要使用DNS 服务。例如,有一封邮件的目标地址是 yourmail@yourserver.com,那么,邮件服务器首先 要通过DNS解析“yourserver.com” ,然后,再通过 TCP连接上的SMTP将邮件传送给该服务器。 • 服务器端邮件服务器接收到邮件之后,将其存储在为 接收用户开辟的存储空间(邮箱)中,等待接收者通过 邮件获取协议读取自己的电子邮件。 Page 7
Page 5
2.邮件服务器 • 邮件服务器是电子邮件系统的核心构件,在其上运 行了邮件服务器软件。
– – – – Exchange Server (windows, 付费,企业级); Imail Server (windows, 付费,中小企业); Mdeamon (windows, 付费,中小企业); sendmail (Linux/Unix, 免费)
Page 14
下表是一个电子邮件的实例
From: John_O_Public@foobar.com To: 912743.253843@nonexist.com Date: Fri, 1 Jan 99 10:21:32 EST Subject: lunch with me? Bob, Can we get together for lunch when you visit next week? I’m free on Tuesday or Wednesday ——just let me know which day you would prefer.
Page 22
• 连接建立后,SMTP服务器发出“220 Service ready”。然后,SMTP客户向SMTP 服务器发送HELLO命令,附上发送方的域名。
• SMTP服务器若有能力接收邮件,则回答: “250 OK” 。若SMTP服务器不可用,则回 答“421 Service not available”。 • 如果SMTP客户在一定时间内发送不了邮件, 则将邮件退还发信人。
客户端 用户代理 S MTP 邮件服务器 S MTP 服务器端 邮件服务器 POP3/IMAP 协议 用户代理
图 14-1 电子邮件的工作过程
Page 4
1. 用户代理 • 用户代理UA(User Agent)是用户与电子邮件 系统的接口,一般它是在用户PC机中运行 的程序。 (如foxmail,outlook express) • 功能:用户代理接受用户输入的各种指令, 将用户的邮件传送至其邮件服务器;或者将 邮件从邮件服务器读取到本机上。 用户代理至少应当具有以下三个功能: 1) 撰写邮件 2) 显示邮件 3) 处理邮件(发送和读取)
Page 11
因特网上有许多邮件发送清单是开放的,任何人可将其 电子邮箱地址通过电子邮件加入到某个邮件发送清单, 以便今后自己的邮箱中能自动收到所需信息的邮件。 • 当电子邮件到达时,邮件服务器检查目标地址。如果目 标地址在别名数据库表中出现,分发器就将信息转发给 表中的每个地址。 表13.3显示了一个邮件分发器数据库的实例。
Page 2
第13章 邮件传输协议
13.1 概述 13.2 电子邮件地址 13.3 邮件转发与网关 13.4 电子邮件信息格式 13.5 简单邮件传输协议(SMTP) 13.6 邮件获取协议 13.7 通用因特网邮件扩充(MIME)
Page 3
13.1 概述
• 通常,一封电子邮件的传送需要用户代 理、客户端邮件服务器和服务器端邮件 服务器三个程序的参与,并使用邮件传 输和获取协议(如SMTP、POP3或 IMAP)。 • 图14-1 表示电子邮件的工作过程。
表 13-5 SMTP 的应答码及其含义
Page 19
2. SMTP模型
• 当用户发出邮件传送请求后,SMTP发送者 (客户端邮件服务器)与SMTP接收者(服务器 端邮件服务器)之间建立一个双向传送通信通 道。SMTP命令由SMTP发送者发出,而应答 则由对方给出。
用户 文件系统 发送 SMTP SMTP 协议
Page 24
• SMTP客户发出RCPT命令,指出收信人地址, 比如: RCPT TO:<bbb@263.com> 从SMTP服务器返回应答信息,如:“250 OK”,表示此邮箱在服务器系统中;或“550 No such user here”,即不存在此邮箱。 • SMTP客户发出DATA命令,表示将开始传送 邮件内容。SMTP服务器返回的信息是:354 Start mail input; 若不能接收邮件,则返回 421(服务器不可用),500(命令无法识别)等。
Page 16
含义 回复地址 使用的字符集 工具软件 发送方地址的副本 发送方面部图象
13.5 简单邮件传输协议(SMTP)
1.概述 • 简单邮件传输协议(SMTP)的目标是可靠地 传送邮件。 • SMTP定义了14条命令和21种响应信息。 • 每条命令用4个字母组成 • 每一种响应一般只有一行信息: 3位数字代码[+简单的文字说明]
13.2 电子邮件地址
• 电子邮件地址是一个字符串,用@分为两部分。第 一部分是电子邮箱标识,第二部分给出了邮箱所在 的邮件服务器的域名。 • E-mail地址通常为: 电子邮箱名@邮箱所在主机的域名 例如: me@mail.njust.edu.cn
Page 8
由于一个主机的域名在因特网上是惟一的,而 一个电子邮箱地址在该主机中也是惟一的。 因此在一个电子邮箱地址在因特网上是惟一 的。 在发送电子邮件时,客户端邮件服务器只使用 收信人地址中的后一部分来找到服务器端邮件 服务器。只有在邮件到达服务器端邮件服务器 后,才根据收信人地址中的前一部分 ( 即收信 人邮箱名 ) ,将邮件存放在相应收件人的邮箱 中。
列表 friends 内容 Joe@foobar.com,Jlll@bar.gov,Tim@StateU.edu, Mary@acollege.edu,Hank@nonexist.com customers bball-interest
Page 12
george@xyz.com,VP_Marketing@news.com hank@nonexist.com,Linda_S_Smith@there.com, John_Q_Public@foobar.com,Connie@foo.edu, 表 13-1 邮件分发器数据库实例
Page 15
John
表14-3列出了一些在因特网电子邮件中的首部 关键字,以及使用它们的目的。
关键字 From To Cc Date Subject 含义 发送方地址 接收方地址 复制副本地 发送日期 主题 关键字 Reply-To X-Charset X-Mailer X-Sender X-Face 表 14-3 常见关键字及其含义
接收 SMTP 接收 SMTP
文件系统
发送 SMTP
Page 20
图 13-3 SMTP 模型
建立TCP连接 发送方
邮件服务器
163.com
220(服务就绪) Hello: 163.com 421:服务不可用
接收方
邮件服务器 263.com
250
Mail: 双方邮件地址 客 户 451:本地出错 250 Data(传送初始化) 421:服务不可用 354: 开始邮件输入 邮件 250 quit 250
SMTP的应答码及其含义。
应答码 211 214 220 221 250 251 354 421 450 451 含义 系统状态或帮助应答 帮助报文 <域>服务准备好 <域>服务关闭传输连接 请求邮递活动已完成 用户不在本地;寻<前向路径> 邮件输入,以<CRLF>结束 <域>服务失败,关闭传输连接 请求邮递活动失败;邮箱失败 请求失败;本地错误 应答码 500 501 502 503 504 550 551 552 553 554 含义 语法错误,不能识别命令 参量有语法错误 命令失败 命令中有坏串 命令参量没有实现 请求活动失败;邮箱不能得到 用户不在本地,请试<前向路径> 请求邮递活动失败 请求活动失败;邮箱名没激活 处理失败
13.4 电子邮件信息格式
电子邮件:信封+内容 内容:首部+信体(body)
– 首部:发送方、接收方、发送日期和内容格式等。 – 信体:可以包含任意文本。
用户写好首部后,邮件系统将自动地将信封所 需的信息从中提取出来并写在信封上。 [RFC 822]规定了邮件的首部格式。首部由多行 构成,每一行:关键字+冒号+信息
Page 21
邮件传送阶段
释放TCP连接
3.SMTP的使用 SMTP通信过程包含连接建立、邮件传送、连接 释放三个阶段。 (1) 连接建立 • SMTP连接是在发送方邮件服务器和接收方邮 件服务器之间建立的。 • 发送方邮件服务器每隔一定时间对邮件缓存扫 描一次。如发现有邮件,就与接收方SMTP服 务器的熟知端口25建立TCP连接。
Page 17
下表给出了SMTP的最小命令集及其功能。
命令 HELO MAIL RECP DATA REST NOOP QUIT
Page 18
含义 发送 SMTP 向接受 SMTP 所做的提示 启动邮递(mail)处理 识别邮件接收者 DATA 后面内容表示邮件数据, 以<CRLF> 结尾 退出(或复位)当前的邮递处理,返回 OK 应答表示过程有效 用于用户测试,仅返回 OK 接收端返回 OK 应答并关闭传输连接
Page 23
(2)邮件传送 • SMTP客户获得SMTP服务器的肯定回复后, 发出MAIL命令。MAIL命令后面有发信人的 地址。如: MAIL FROM: <aaa@163.com> • 若SMTP服务器已准备好接收邮件,则回答 “250 OK”。否则,返回一个代码,指出出 错原因。如:451(处理时出错),452(存储空 间不够),500(命令无法识别)等。
• 简单邮件传送协议SMTP[RFC 821]和电 子邮件格式标准 [RFC 822]最早出现在 1982年,当初是ARPANET上的电子邮 件标准,现在已成为因特网的电子邮件 标准。 • 早期的问题:SMTP只能传送ASCII码邮 件。
Page 1
• 解决:1993年又制定了新的电子邮件标 准 “通用因特网邮件扩展” MIME [RFC 1521,1522] 。MIME邮件可同时 传送多种类型的数据(如文本、声音、图 像、视频等) 。 • 另外,客户读取邮件时还需要使用邮件 读取协议。
Page 13
首部中的关键字是From、To、Date、Subject。 • From:表示发信人的电子邮件地址。一般由邮 件系统自动填入。 • To:填入一个或多个收信人的电子邮件地址。 在电子邮件软件中,用户将经常通信的对象姓 名和电子邮件地址写到地址簿中。当撰写邮件 时,只需打开地址簿,点击收信人名字,收信 人的电子邮件地址就会自动地填入到合适的位 置上。 • Date:发信日期。一般由邮件系统自动填入。 • Subject:是邮件的主题。它反映了邮件的主 要内容。主题便于用户查找邮件。
Page 9
13.3 别名与邮件网关
1.别名 • SMTP允许用一个别名来表示几个不同的电子 邮箱,另外,一个电子邮箱也可以定义多个不 同的电子邮件地址。 • 使用别名为用户带来了方便,别名映射可以是 多对一或一对多。
Page 10
1) 多对一映射:多个电子邮箱地址对应一个用 户邮箱。 2) 一对多映射:有时同一份邮件要发送给多个 不同的收信人时,用户就可以创建一个别名, 此别名对应一个邮件发送清单,即多个电子 邮箱。
•
功能:发送和接收邮件,同时还向发信人报告邮件 传送的情况(已交付、被拒绝、丢失等)。 • 邮件服务器默认监听TCP 25端口看是否有客户请 求。 3. 电子邮件所使用协议 邮件传输协议:SMTP + MIME; 邮件接收协议:POP3 或 IMAP
Page 6
返回
电子Βιβλιοθήκη Baidu件传送过程
• 当用户代理发送一封电子邮件时,首先使用SMTP协 议发送到客户端的邮件服务器。 • 客户邮件服务器得到了邮件后,将它保存在自身的缓 冲队列中,然后,根据邮件的目的地址,查询服务器 端的邮件服务器,并且通过SMTP传送。根据邮件的 目的地址确定服务器端邮件服务器时,需要使用DNS 服务。例如,有一封邮件的目标地址是 yourmail@yourserver.com,那么,邮件服务器首先 要通过DNS解析“yourserver.com” ,然后,再通过 TCP连接上的SMTP将邮件传送给该服务器。 • 服务器端邮件服务器接收到邮件之后,将其存储在为 接收用户开辟的存储空间(邮箱)中,等待接收者通过 邮件获取协议读取自己的电子邮件。 Page 7
Page 5
2.邮件服务器 • 邮件服务器是电子邮件系统的核心构件,在其上运 行了邮件服务器软件。
– – – – Exchange Server (windows, 付费,企业级); Imail Server (windows, 付费,中小企业); Mdeamon (windows, 付费,中小企业); sendmail (Linux/Unix, 免费)
Page 14
下表是一个电子邮件的实例
From: John_O_Public@foobar.com To: 912743.253843@nonexist.com Date: Fri, 1 Jan 99 10:21:32 EST Subject: lunch with me? Bob, Can we get together for lunch when you visit next week? I’m free on Tuesday or Wednesday ——just let me know which day you would prefer.
Page 22
• 连接建立后,SMTP服务器发出“220 Service ready”。然后,SMTP客户向SMTP 服务器发送HELLO命令,附上发送方的域名。
• SMTP服务器若有能力接收邮件,则回答: “250 OK” 。若SMTP服务器不可用,则回 答“421 Service not available”。 • 如果SMTP客户在一定时间内发送不了邮件, 则将邮件退还发信人。
客户端 用户代理 S MTP 邮件服务器 S MTP 服务器端 邮件服务器 POP3/IMAP 协议 用户代理
图 14-1 电子邮件的工作过程
Page 4
1. 用户代理 • 用户代理UA(User Agent)是用户与电子邮件 系统的接口,一般它是在用户PC机中运行 的程序。 (如foxmail,outlook express) • 功能:用户代理接受用户输入的各种指令, 将用户的邮件传送至其邮件服务器;或者将 邮件从邮件服务器读取到本机上。 用户代理至少应当具有以下三个功能: 1) 撰写邮件 2) 显示邮件 3) 处理邮件(发送和读取)
Page 11
因特网上有许多邮件发送清单是开放的,任何人可将其 电子邮箱地址通过电子邮件加入到某个邮件发送清单, 以便今后自己的邮箱中能自动收到所需信息的邮件。 • 当电子邮件到达时,邮件服务器检查目标地址。如果目 标地址在别名数据库表中出现,分发器就将信息转发给 表中的每个地址。 表13.3显示了一个邮件分发器数据库的实例。
Page 2
第13章 邮件传输协议
13.1 概述 13.2 电子邮件地址 13.3 邮件转发与网关 13.4 电子邮件信息格式 13.5 简单邮件传输协议(SMTP) 13.6 邮件获取协议 13.7 通用因特网邮件扩充(MIME)
Page 3
13.1 概述
• 通常,一封电子邮件的传送需要用户代 理、客户端邮件服务器和服务器端邮件 服务器三个程序的参与,并使用邮件传 输和获取协议(如SMTP、POP3或 IMAP)。 • 图14-1 表示电子邮件的工作过程。
表 13-5 SMTP 的应答码及其含义
Page 19
2. SMTP模型
• 当用户发出邮件传送请求后,SMTP发送者 (客户端邮件服务器)与SMTP接收者(服务器 端邮件服务器)之间建立一个双向传送通信通 道。SMTP命令由SMTP发送者发出,而应答 则由对方给出。
用户 文件系统 发送 SMTP SMTP 协议
Page 24
• SMTP客户发出RCPT命令,指出收信人地址, 比如: RCPT TO:<bbb@263.com> 从SMTP服务器返回应答信息,如:“250 OK”,表示此邮箱在服务器系统中;或“550 No such user here”,即不存在此邮箱。 • SMTP客户发出DATA命令,表示将开始传送 邮件内容。SMTP服务器返回的信息是:354 Start mail input; 若不能接收邮件,则返回 421(服务器不可用),500(命令无法识别)等。
Page 16
含义 回复地址 使用的字符集 工具软件 发送方地址的副本 发送方面部图象
13.5 简单邮件传输协议(SMTP)
1.概述 • 简单邮件传输协议(SMTP)的目标是可靠地 传送邮件。 • SMTP定义了14条命令和21种响应信息。 • 每条命令用4个字母组成 • 每一种响应一般只有一行信息: 3位数字代码[+简单的文字说明]
13.2 电子邮件地址
• 电子邮件地址是一个字符串,用@分为两部分。第 一部分是电子邮箱标识,第二部分给出了邮箱所在 的邮件服务器的域名。 • E-mail地址通常为: 电子邮箱名@邮箱所在主机的域名 例如: me@mail.njust.edu.cn
Page 8
由于一个主机的域名在因特网上是惟一的,而 一个电子邮箱地址在该主机中也是惟一的。 因此在一个电子邮箱地址在因特网上是惟一 的。 在发送电子邮件时,客户端邮件服务器只使用 收信人地址中的后一部分来找到服务器端邮件 服务器。只有在邮件到达服务器端邮件服务器 后,才根据收信人地址中的前一部分 ( 即收信 人邮箱名 ) ,将邮件存放在相应收件人的邮箱 中。
列表 friends 内容 Joe@foobar.com,Jlll@bar.gov,Tim@StateU.edu, Mary@acollege.edu,Hank@nonexist.com customers bball-interest
Page 12
george@xyz.com,VP_Marketing@news.com hank@nonexist.com,Linda_S_Smith@there.com, John_Q_Public@foobar.com,Connie@foo.edu, 表 13-1 邮件分发器数据库实例
Page 15
John
表14-3列出了一些在因特网电子邮件中的首部 关键字,以及使用它们的目的。
关键字 From To Cc Date Subject 含义 发送方地址 接收方地址 复制副本地 发送日期 主题 关键字 Reply-To X-Charset X-Mailer X-Sender X-Face 表 14-3 常见关键字及其含义
接收 SMTP 接收 SMTP
文件系统
发送 SMTP
Page 20
图 13-3 SMTP 模型
建立TCP连接 发送方
邮件服务器
163.com
220(服务就绪) Hello: 163.com 421:服务不可用
接收方
邮件服务器 263.com
250
Mail: 双方邮件地址 客 户 451:本地出错 250 Data(传送初始化) 421:服务不可用 354: 开始邮件输入 邮件 250 quit 250
SMTP的应答码及其含义。
应答码 211 214 220 221 250 251 354 421 450 451 含义 系统状态或帮助应答 帮助报文 <域>服务准备好 <域>服务关闭传输连接 请求邮递活动已完成 用户不在本地;寻<前向路径> 邮件输入,以<CRLF>结束 <域>服务失败,关闭传输连接 请求邮递活动失败;邮箱失败 请求失败;本地错误 应答码 500 501 502 503 504 550 551 552 553 554 含义 语法错误,不能识别命令 参量有语法错误 命令失败 命令中有坏串 命令参量没有实现 请求活动失败;邮箱不能得到 用户不在本地,请试<前向路径> 请求邮递活动失败 请求活动失败;邮箱名没激活 处理失败
13.4 电子邮件信息格式
电子邮件:信封+内容 内容:首部+信体(body)
– 首部:发送方、接收方、发送日期和内容格式等。 – 信体:可以包含任意文本。
用户写好首部后,邮件系统将自动地将信封所 需的信息从中提取出来并写在信封上。 [RFC 822]规定了邮件的首部格式。首部由多行 构成,每一行:关键字+冒号+信息
Page 21
邮件传送阶段
释放TCP连接
3.SMTP的使用 SMTP通信过程包含连接建立、邮件传送、连接 释放三个阶段。 (1) 连接建立 • SMTP连接是在发送方邮件服务器和接收方邮 件服务器之间建立的。 • 发送方邮件服务器每隔一定时间对邮件缓存扫 描一次。如发现有邮件,就与接收方SMTP服 务器的熟知端口25建立TCP连接。
Page 17
下表给出了SMTP的最小命令集及其功能。
命令 HELO MAIL RECP DATA REST NOOP QUIT
Page 18
含义 发送 SMTP 向接受 SMTP 所做的提示 启动邮递(mail)处理 识别邮件接收者 DATA 后面内容表示邮件数据, 以<CRLF> 结尾 退出(或复位)当前的邮递处理,返回 OK 应答表示过程有效 用于用户测试,仅返回 OK 接收端返回 OK 应答并关闭传输连接
Page 23
(2)邮件传送 • SMTP客户获得SMTP服务器的肯定回复后, 发出MAIL命令。MAIL命令后面有发信人的 地址。如: MAIL FROM: <aaa@163.com> • 若SMTP服务器已准备好接收邮件,则回答 “250 OK”。否则,返回一个代码,指出出 错原因。如:451(处理时出错),452(存储空 间不够),500(命令无法识别)等。