1 电子邮件的组成

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

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

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

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

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


2 电子邮件的体系结构

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

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

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

用户代理:

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

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


3 电子邮件消息格式

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

每个头域(逻辑上地,上图中红框部分)由一行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之间的关系:

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

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

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

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

        POP 3 是 IMAP的早期版本。

Webmail(有望取代 POP3 和 IMAP


电子邮件 e-mail原理相关推荐

  1. 转:电子邮件的工作原理

    第一章 电子邮件的工作原理 1. 互联网TCP/IP的基本结构 2. SMTP的基本结构 2.1 SMTP的模型 2.2 SMTP的基本命令 3. 电子邮件的工作原理 4. 电子邮件的信头结构及分析 ...

  2. php mail函数_PHP发送电子邮件函数mail详解

    重要:本文最后更新于2019-10-09 08:49:07,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗. PHP作为一门使用广泛的脚本语言,经过这么多年发展已经非常完善了,发送电子 ...

  3. 电子邮件的工作原理(图)

    电子邮件与普通邮件有类似的地方,发信者注明收件人的姓名与地址(即邮件地址),发送方服务器把邮件传到收件方服务器,收件方服务器再把邮件发到收件人的邮箱中.如下图所示: 更进一步的解释涉及到以下几个概念: ...

  4. SMTP基本电子邮件发送协议原理

    1.电子邮件发送客户端发送给服务器端,postfix软件提供MTA,MDA.MTA 提供SMTP服务,接受邮件(读取DNS的MX记录)-->保存MDA 传送邮件MUA 用户代理 1-1服务器使用 ...

  5. linux电子邮件,Linux电子邮件命令mail

    Linux邮件命令用法 1. 将文件当做电子邮件的内容送出语法:mail -s "主题"用户名@地址< 文件例如:mail -s "program" us ...

  6. 电子邮件服务器的工作原理,电子邮件工作原理 电子邮件有什么特点呢

    电子邮件是交流信息的一种通信方式,可以用来传输文件和图片,还是非常方便的.很多人对电子邮件的工作原理感到好奇,电子邮件工作原理是怎样的?电子邮件有什么特点呢? 电子邮件工作原理 电子邮件工作原理 电子 ...

  7. 我如何构建heimdall开源个人电子邮件监护人

    I love receiving spam mail! - No one ever. 我喜欢收到垃圾邮件! - 没有人. I use Gmail, which does a fantastic job ...

  8. 垂钓之王hd_如果收到网络钓鱼电子邮件该怎么办?

    垂钓之王hd Rawpixel.com/ShutterStockRawpixel.com/ShutterStock If you receive a phishing email, it can be ...

  9. 电子邮件服务器限制匿名,匿名(垃圾)邮件的根源—网络上几乎所有服务器都不可避免的“漏洞-站长资讯中心...

    大家在看到这篇文章的小标题的时候,或许很多人都知道了这个"漏洞",而有的人在看文章的过程中,知道这个"漏洞",也有的人或许会惊诧,因为小标题好像说得太过严重,不 ...

  10. 邮箱系统原理——基本原理

    1.邮件服务器种类 SMTP服务器:用于替用户发送和接受外面发送给本地用户的邮件(相当于邮局的接受部门) POP3/IMAP服务器:由于帮助用户读取SMTP服务器接收进来的该用户的邮件(相当于专门为前 ...

最新文章

  1. “CV_GRAY2BGR”: 未声明的标识符
  2. 在ASP.Net中使用FCKeditor
  3. Linux使用imagemagick的convert命令压缩图片、节省服务器空间
  4. C语言试题四十八之该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。
  5. IntelliJ IDEA 开启很慢,运行不流畅,大项目卡顿?一招配置解决!
  6. c语言中短路逻辑有与有或例子,C语言零基础教程之运算符和表达式,全面解析,轻松上手...
  7. sam卡和sim卡区别_SAM卡槽是不是和SIM卡槽是一个东西,有高人知道么?
  8. Ubuntu14.04环境下配置TFTP服务器
  9. storm中的RotatingCache技术
  10. Ubuntu 16.04 安装 搜狗输入法 sogou input
  11. C语言正交表测试用例,测试用例设计之正交表法和配对测试法
  12. Redis实用教程-----------菜鸟快速入门
  13. 如何将大华设备通过大华SDK接入Demo工具测试视频接入?
  14. 面试B站,结果面试官牵着一条狗出来面试我....这是什么操作??
  15. word-wrap长单词与URL地址自动换行
  16. Context [] startup failed due to previous errors 的解决方式
  17. 文件存储 云服务器,文件存储 云服务器
  18. storm mysql trident_storm trident实战 trident state
  19. springboot+vue 审批工作流集成flowable(springboot实现工作流)
  20. 网口速率测试工具 iperf

热门文章

  1. 数据库注入提权总结(一)
  2. websockets 和 socketio 的比较
  3. 轻松转换矢量图的小工具Vector Magic
  4. 《遥感原理与应用》孙家抦版知识点总结(含简答题)——第三章
  5. Park 变换 系数2/3的由来
  6. 矢量控制——SVPWM
  7. html界面设计用什么软件,html网页开发常用软件有哪些
  8. 亲测有效,使用postman进行并发测试
  9. nfc加密卡pm3和pm5区别_为了省门禁卡的钱,买了NFC读卡器,到底值不值
  10. php怎么抓取手机号码,PHP提取字符串中的手机号