1 电子邮件的组成

        电子邮件通常由两部分组成

        用户代理(UA):让用户能够阅读和发送邮件。

                UA是一个本地程序,提供命令行或图形界面,让用户和电子邮件系统交互 。

        邮件传输代理 (MTA):将邮件从源端送到目标端,又被称为邮件服务器。

                MTA通常是一个系统守护进程,即运行在后台的进程,在系统中传递电子邮件。


2 电子邮件的体系结构

zabbix email原理 email的工作原理_zabbix email原理

        Sender在UA编辑好邮件 ==> 提交给Sender的MTA ==> Sender的MTA将邮件传输给Receiver的MTA ==> 邮件投递给Receiver

        在电邮体系结构中,用户直接接触的是用户代理UA,通常是一个程序(电子邮件阅读器。

        常见的电子邮件阅读器有:Outlook、Gmail、Thunderbird、Foxmail……

用户代理:

        用户代理的界面(即邮箱内的操作界面)各不相同,但主要功能如下:

  1. 入境邮件的显示       
  2.  入境邮件的显示(垃圾邮件、某重要人物的邮件       
  3. 自动响应
  4. 邮件处置(邮件的回复、转发、删除、保存……       
  5.  签名块       
  6. 邮件列表  (mailing-list(本地、传输代理

zabbix email原理 email的工作原理_zabbix email原理_02


3 电子邮件消息格式

        ASCII 电子邮件信息通常采用 RFC 822,消息由一个基本的信封 (RFC821)、一些头域、一个空行和消息体组成。

zabbix email原理 email的工作原理_Email_03

        每个头域(逻辑上地,上图中红框部分)由一行ASCII文本组成,包括域名、一个冒号,对于大多数头域来说,还包括一个值。

        RFC 822 是几十年前设计的,没有区分信封域和头域。现在最近发行的版本是RFC 2822,已经对此作了修正和增添了许多修订,但由于RFC 822 使用得非常广泛,不可能推倒重来,所以仍然维持着ASCII文本的基本格式。

各部分字段的意义

以 RFC 5322 与邮件传输相关的头字段为例:

Header

Meaning

To:

E-mail address(es) of primary recipient(s).

Cc:

E-mail address(es) of secondary recipient(s).

Bcc:

E-mail address(es) for blind carbon copies.

From:

Person orbeoole who created th.

Sender:

E-mail address of the actual sender.

Received:

Line added by each transfer agent along the route.

Return-Path:

Can be used to identify a path back to the sender.

RFC 5322 中邮件头使用的某些字段:

Header

Meaning

Date:

The date and time the message was sent.

Reply-To:

E-mail address to which replies should be sent.

Message-ld:

Unique number for referencing this message later.

ln-Reply-To:

Message-ld of the message to which this is a reply.

References:

Other relevant Message-lds.

Keywords:

User-chosen keywords.

Subject:

Short summary of the message for the one-line display.


4 MIME

        MIME(Multipurpose Internet Mail Extensions)是多用途互联网邮件扩展类型。是设定某种扩展名文件用一种应用程序来打开的方式类型。

        MIME出现是为了解决这些问题:带有重音符的语言(如法语)、非拉丁字母(如俄 语)、不带字母的语言(如汉语)、完全不包含文本的消息(如视频)……出现在邮件中无法显示。 准确的说,MIME是一个互联网标准,扩展了电子邮件标准。

        MIME的基本思想是继续使用 RFC 822 格式,但是在消息体中增加了结构,且为非ASCII消息定义了编码规则。又因为MIME没有偏离 RFC 822 ,所以 MIME 消息可以使用现有的程序和协议来发送,而所有必须要改变的是接收和发送的程序。


        MIME增加了的消息头——Content-Transfer-Encoding(内容传输编码,指明了这种编码规则。

Header

Meaning

MIME-Version:

ldentifies the MIME version.

Content-Description:

Human-readable string telling what is in the message.

Content-ld:

Unique identifier.

Content-Transfer-Encoding:

How the body is wrapped for transmission.

Content-Type:

Type and format of the content.

        MIME提供了 5 种编码方法(即加上一个扩充新方案的选项,这里介绍其中一种:Base64 编码

Base64 编码

Base64 编码,有时被称为ASCII盔甲( ASCII armor),每24位成一组,每组分成4个6位单元,每个单元被当作一个合法的 ASCII字符来发送。

“A” 代表 0, “B”代表 1, 以此类推,接着是26位小写字母,10 个数字,最后是 + 和 / 分别代表 62 和 63。

在Base64编码中 == 和 = 分别表示最后一个组只含有8位或16位,并且回车和换行被忽略。


Email 消息传输

        Email 消息传输系统专注于将消息从发信方转发给收信方。这里我们使用的是SMTP – Simple Mail Transfer Protocol。

MIME 和 SMTP之间的关系:

zabbix email原理 email的工作原理_字段_04

        但这种传输模式的问题在于,必须所有的收发邮件的机器都一直处于工作状态,但用户不可能一直在线,所以设计了 POP3 协议,允许用户和消息传输代理MTA联系,然 后把邮件从ISP那里拷贝到用户。

zabbix email原理 email的工作原理_zabbix email原理_05

        POP3 协议等同于建立一个中转缓存站,存储邮件,是最后一跳。

zabbix email原理 email的工作原理_Email_06

 POP 3 的工作状态大致如下:

zabbix email原理 email的工作原理_zabbix email原理_07

        POP 3不适合移动用户的工作,因为他在某地收到邮件后,邮件会被标记成删除,无法在异地再次收邮件,而IMAP (Internet Message Access Protocol)比POP3更加强大,针对这点也做了改进,将所有的邮件永久的保存在服务器上的多个邮箱中。

        POP 3 是 IMAP的早期版本。

Webmail(有望取代 POP3 和 IMAP

zabbix email原理 email的工作原理_Email_08