DJ2-3 Internet 中的电子邮件 SMTP/POP3/IMAP

文章详细介绍了互联网电子邮件系统,包括用户代理的角色,邮件服务器的功能,如邮箱和外出报文队列,以及SMTP协议的工作原理,如直接传送和命令交互。此外,还提到了邮件报文的基本格式和MIME扩展,以及邮件访问协议POP3和IMAP的区别。
摘要由CSDN通过智能技术生成

目录

一、电子邮件

1、用户代理

2、邮件服务器

3、SMTP

4、发送邮件举例

二、SMTP

1、SMTP 命令交互

2、SMTP 总结

三、邮件报文格式

1、邮件消息的基本格式

2、邮件消息的多媒体扩展格式

3、邮件访问协议


一、电子邮件

Internet 电子邮件系统的组成:

  • 用户代理(user agents)
  • 邮件服务器(mail servers)
  • 简单邮件传送协议 SMTP 和邮件接收协议

1、用户代理

1)用户代理允许用户阅读、回复、转发、保存和撰写邮件消息。

  • 如:Outlook、基于 web 的 Gmail 和运行在智能手机上的 Gmail 客户端等

2)用户代理将邮件消息发送到服务器,并从服务器接收邮件消息。

  • 当 A 完成邮件撰写时,A 的邮件代理向其邮件服务器发送邮件
  • 当 B 要阅读报文时,B 的用户代理在其邮件服务器的邮箱中取得该报文

邮件服务器将接收到的待发送的邮件放在自己的外出报文队列中

3)运行邮件协议。

2、邮件服务器

1)邮箱(mailbox)

  • 用于存放邮件接收方接收的邮件信息
  • 每个邮件接收方都在邮件服务器上有一个邮箱

上述的 B 就是一个邮件接收方

2)外出报文队列(outgoing message queue)

当 A 的服务器不能将邮件交付给 B 的服务器时,A 的服务器在外出报文队列中保持该报文并在以后尝试再次发送。通常每 30 分钟左右进行一次尝试,如果几天后仍不能成功,服务器就删除该报文并以电子邮件的形式通知发送方 A 。

3、SMTP

全称 simple mail transfer protocol:

  • 是 Internet 电子邮件系统中的主要应用层协议
  • 使用 TCP 的可靠数据传输服务

SMTP 也有两个部分:

  • 运行在发送方邮件服务器的客户端
  • 运行在接收方邮件服务器的服务器端

每台邮件服务器上既运行 SMTP 的客户端也运行 SMTP 的服务器端

1)直接传送

是指 SMTP 一般不使用中间邮件服务器发送邮件,都是直接从发送服务器到接收服务器。

2)保密性

因为 SMTP 一般不使用中间邮件服务器发送邮件。

3)传输的三个阶段:

  • 握手/问候
  • 邮件消息的传输
  • 结束

4)命令/应答的交互

  • 命令采用 7 比特 ASCII 文本格式
  • 应答包含状态码及其短语

限制所有邮件报文的首部行和体部分采用简单的 7 比特 ASCII 表示。如:传送前需要将二进制多媒体数据编码为 ASCII 码,并且在使用 SMTP 传输后要求将相应的 ASCII 码邮件解码还原为多媒体数据。

4、发送邮件举例

① yujin 使用用户代理撰写邮件消息,准备发给 minju(minju@izone.edu);

② yujin 的用户代理将邮件消息发到她的邮件服务器,邮件消息存放在外出报文队列中;

③ yujin 邮件服务器的 SMTP 客户端发起建立一个到 minju 的邮件服务器的 SMTP 服务器端的 TCP 连接,经过一些初始 SMTP 握手(在应用层);

④ SMTP 客户端在这个 TCP 连接上发送 yujin 的邮件消息;

⑤ minju 的邮件服务器将邮件消息存放到 minju 的邮箱中;

⑥ 在 minju 音中下班的时候,她调用用户代理阅读邮件消息。

邮件服务器接收到用户代理发来的邮件消息时,将会识别接收者的邮件地址:若其邮件服务器与自身不同,则转发该邮件消息;否则,将邮件消息存放在接收者的邮箱中即可。

二、SMTP

1、SMTP 命令交互

假设:

  • 客户的主机名:crepes.fr
  • 服务器的主机名:hamburger.edu

一旦创建了 TCP 连接,就开始了下列过程。

  • 以 “C: ” 开头的 ASCII 码文本行是客户交给其 TCP 套接字的那些行。
  • 以 “S: ” 开头的 ASCII 码文本行是服务器发送给其 TCP 套接字的那些行。

下述内容源自命令行窗口。

/* 创建TCP连接 */

S: 220 hamburger.edu
C: HELO crepes.fr 
S: 250  Hello crepes.fr, pleased to meet you 
C: MAIL FROM: <alice@crepes.fr> 
S: 250 alice@crepes.fr... Sender ok 
C: RCPT TO: <bob@hamburger.edu> 
S: 250 bob@hamburger.edu ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself 
C: Do you like ketchup? 
C: How about pickles? 
C: . 
S: 250 Message accepted for delivery 
C: QUIT 
S: 221 hamburger.edu closing connection

特点:

  • 报文结束标志:只包含一个句点的行
  • 如果想发送一个点,就再加一个点,即 ..

2、SMTP 总结

  • SMTP 使用持久连接
  • SMTP 要求邮件消息必须是 7 比特 ASCII
  • SMTP 服务器使用 CRLF.CRLF 来判断邮件消息的结束

如果发送邮件服务器有几个报文发往同一个接收邮件服务器,它可以通过同一个 TCP 连接发送所有这些报文。对每个报文,该客户用一个新的 “mail from: <alice@crepes.fr>” 开始,用一个独立的句点指示该邮件的结束,并且仅当所有邮件发送完后才发送 quit 。

(简答题) 与 HTTP 的比较:

  • HTTP 是拉协议SMTP 是推协议
  • 都有 ASCII 形式的命令/应答交互以及状态码
  • HTTP:每个对象封装在它各自的 HTTP 响应消息中发送
  • SMTP:一个邮件内各个对象置于同一个邮件消息的多目部分发送

三、邮件报文格式

1、邮件消息的基本格式

SMTP:用来交换邮件消息的协议。

一个典型的报文首部看起来如下:

from: alice@crepes.fr
to: bob@hamburger.edu
subject: searching for the meaning of life.

RFC 822:文本邮件消息格式标准。

  • 信头/首部行:不同于 SMTP 命令!
  • 信体/体:必须是 ASCII 字符。

上一小节的 mail from 是 SMTP 握手协议的一部分,这里的报文首部行虽然有 from,但它是邮件报文自身的一部分。

2、邮件消息的多媒体扩展格式

MIME:Multipurpose Internet mail Extensions,多用途因特网邮件扩展 [RFC 2045, 2046]

增添额外的信头头部声明 MIME content-type 。

From: alice@crepes.fr 
To: bob@hamburger.edu 
Subject: Picture of yummy crepe.
MIME-Version: 1.0                    // MIME版本
Content-Transfer-Encoding: base64    // 编码方式
Content-Type: image/jpeg             // 多媒体数据类型名/子类型名

base64 encoded data .....            // 编码后的数据
......................... 
......base64 encoded data

SMTP 命令都是自解释的,而邮件信息内容由应用程序来解释。

3、邮件访问协议

邮件访问协议 e-mail access protocol

  • SMTP:发送/存储邮件消息到接收者邮件服务器。
  • 邮件访问协议:从邮件服务器获取邮件消息。

SMTP 更像是一种邮件传输协议(?)

1)POP3

Post Office Protocol,邮局协议 [RFC 1939]

  • 采用端口:110
  • 进行身份认证并下载邮件消息到本地
  • 不支持用户远程操纵邮箱消息

2)IMAP

Internet Message Access Protocol,因特网邮件访问协议 [RFC 3501]

  • 采用端口:143
  • 具有更多功能特征,也更复杂
  • 允许用户像对待本地邮箱那样操纵远程邮箱的邮件

3)HTTP

  • 采用端口:80
  • 基于 Web 的电子邮件或智能手机上的客户端
  • 允许用户像对待本地邮箱那样操纵远程邮箱的邮件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值