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. CSDN 十大技术主题盘点-AI篇
  2. Python 安装cx_Oracle模块折腾笔记
  3. 关于使用REST API
  4. (转)字典树原理+实现
  5. PHP中文字符串编码转换
  6. MS UC 2013-2-Deploy Microsoft Exchange Server 2013-4-Post-Installation Tasks
  7. 电脑服务器传文件夹吗,服务器和电脑传文件夹吗
  8. matlab 启动图标
  9. excel清空sheet内容 poi_Excel隐藏了一个sheet表,java poi中是可以读出来的,现在我不想读取隐藏的sheet表。...
  10. linux交换内存_Linux中的交换内存如何工作?
  11. 客户端工具收取邮件提示-ERR maildrop alredy locked
  12. 拓端tecdat|在Python中使用LSTM和PyTorch进行时间序列预测
  13. 安卓beforetextchanged_Android TextWatcher.afterTextChanged与TextWatcher
  14. ANSYS网格划分标准及方法
  15. Linux环境下ATAPI MO的使用方法(转)
  16. EFI、UEFI、MBR、GPT的区别
  17. jQuery的id选择器
  18. 云原生时代,OAM模型加持下的应用交付与管理实践
  19. 《看不见的森林:林中自然笔记》书摘二
  20. Linux解压rar压缩文件的详细方法

热门文章

  1. Java常用软件下载地址
  2. YYText的介绍和使用
  3. XC1004四轴SPI运动控制芯片,bc014四轴电子凸轮运动控制模块
  4. hashMap底层原理
  5. w10系统 怎么快捷搜索服务器,w10系统怎么远程连接服务器
  6. 华为eSight网管平台折腾
  7. Java自定义动态数组
  8. android 4.4.2海信电视,ROOT海信电视Android4.0的详细步骤
  9. python在d盘创建txt文件_python中如何创建一个txt文件
  10. 一篇教你随意下载网易云音乐歌曲的博客!