电子邮件、SMTP、POP3 、IMAP协议

目录

1 电子邮件

1.1 电子邮件系统的组成

1.1.1 用户代理 UA (User Agent)

1.1.2 邮件服务器 (Mail Server)

1.1.3 邮件发送和读取协议

1.2 发送和接收电子邮件的重要步骤

1.3 电子邮件的组成

1.4 电子邮件地址的格式

2 简单邮件传送协议 SMTP

2.1 SMTP 通信的三个阶段

3 电子邮件的信息格式

 3.1 邮件内容的首部

4 邮件读取协议 POP3 和 IMAP

4.1 POP3 协议

4.2 IMAP 协议

4.2.1 IMAP 的特点

4.3 IMAP 与 POP3 比较

5 基于万维网的电子邮件

6 通用互联网邮件扩充 MIME

6.1 MIME 主要包括三个部分

6.1.1 内容传送编码(Content-Transfer-Encoding) 

(1)Quoted-printable 编码

(2)Base64 编码

6.1.2 内容类型

(1)MIME Content-Type 说明中的类型及子类型

6.1.3 MIME 举例


1 电子邮件

·电子邮件 (e-mail):指使用电子设备交换的邮件及其方法。

·优点:使用方便,传递迅速,费用低廉,可以传送多种类型的信息(包括:文字信息,声音和图像等)。

·重要标准

        ·简单邮件发送协议:SMTP

        ·互联网文本报文格式

        ·通用互联网邮件扩充 MIME

        ·邮件读取协议:POP3 和 IMAP

1.1 电子邮件系统的组成

三个主要构件:

        用户代理邮件服务器,以及邮件发送和读取协议

1.1.1 用户代理 UA (User Agent)

·用户与电子邮件系统的接口。又被称为电子邮件客户端软件

·基本功能:撰写、显示、处理、通信。

1.1.2 邮件服务器 (Mail Server)

·又被称为邮件传输代理

·功能:发送和接收邮件,同时还要向发信人报告邮件传送的情况。

·按照客户服务器方式工作。

1.1.3 邮件发送和读取协议

·邮件发送和读取使用不同的协议。

·简单邮件发送协议 SMTP:用于在用户代理向邮件服务器 或 邮件服务器之间发送邮件。

·邮局协议 POP3:用于用户代理从邮件服务器读取邮件。

应当注意

·邮件服务器必须能够同时充当客户和服务器。

·SMTP 和 POP3(或 IMAP)都使用 TCP 连接可靠地传送邮件。

1.2 发送和接收电子邮件的重要步骤

两种不同的通信方式

1.3 电子邮件的组成

·电子邮件由信封 (envelope) 和内容 (content) 两部分组成。

·电子邮件的传输程序根据邮件信封上的信息来传送邮件。

·用户在从自己的邮箱中读取邮件时才能见到邮件的内容。

1.4 电子邮件地址的格式

·在邮件的信封上,最重要的就是收件人的地址。

·TCP/IP 体系的电子邮件系统规定电子邮件地址的格式如下:

2 简单邮件传送协议 SMTP

·SMTP 规定了在两个相互通信的 SMTP 进程之间交换信息的方法。

·SMTP 使用客户服务器方式。

·SMTP 基于 TCP 实现客户与服务器的通信。

·SMTP 是一个基于文本的 (即 ASCII 码) 的协议。

·SMTP 客户与服务器之间采用命令-响应方式进行交互。

2.1 SMTP 通信的三个阶段

1.连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。SMTP 不使用中间的邮件服务器。  

2.邮件传送

3.连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接。

SMTP 缺点

·不能传送可执行文件或其他的二进制对象。

·限于传送 7 位的 ASCII 码,无法传送非 ASCII 编码的信息。

·服务器会拒绝超过一定长度的邮件。

·某些 SMTP 的实现并没有完全按照 [RFC 821] 的 SMTP 标准。 

3 电子邮件的信息格式

·一个电子邮件分为信封内容两大部分。

·RFC 5322 只规定了邮件内容中的首部 (header) 格式。

·邮件的主体 (body) 部分则让用户自由撰写。

 3.1 邮件内容的首部

4 邮件读取协议 POP3 和 IMAP

两个常用的邮件读取协议:

        ·POP3:邮局协议 (Post Office Protocol) 第3个版本

        ·IMAP:网际报文存取协议 (Internet Message Access Protocol)

4.1 POP3 协议

·POP3 使用客户服务器方式。

·POP3 基于 TCP 实现客户与服务器的通信。

·POP3 支持用户鉴别

·POP3 服务器删除被用户读取了的邮件。

4.2 IMAP 协议

·IMAP 使用客户服务器方式。

·IMAP 基于 TCP 实现客户与服务器的通信。

·IMAP 是一个联机协议。

4.2.1 IMAP 的特点

·连接后只下载邮件首部(部分下载)。

·用户直接在 IMAP 服务器上创建和管理文件夹。

·用户可以搜索邮件内容。

·用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己的邮件。

·允许收信人只读取邮件中的某一个部分。

·缺点:要想查阅邮件,必须先联网。

4.3 IMAP 与 POP3 比较

必须注意

·邮件读取协议 POP 或 IMAP 与邮件传送协议 SMTP 完全不同。

·发信人的用户代理向源邮件服务器发送邮件,以及源邮件服务器向目的邮件服务器发送邮件,都是使用 SMTP 协议。

·而 POP 协议或 IMAP 协议则是用户从目的邮件服务器上读取邮件所使用的协议。

5 基于万维网的电子邮件

·用户代理 (UA) 的缺点

        必须在计算机中安装用户代理软件。

        收发邮件不方便。

·万维网电子邮件优点

        不需要在计算机中再安装用户代理软件。

        计算机能联网,就能非常方便地收发电子邮件。

        界面非常友好。

·发送、接收电子邮件时使用 HTTP 协议。

·两个邮件服务器之间传送邮件时使用 SMTP。

·使用 HTTP POST 方法提交要发送的邮件。

·使用 HTTP GET 方法读取邮件。

6 通用互联网邮件扩充 MIME

·通用互联网邮件扩充 MIME 并没有改动 SMTP 或取代它。

·意图:继续使用目前的 [RFC 822] 格式,但增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则

MIME 和 SMTP 的关系

6.1 MIME 主要包括三个部分

·5 个新的邮件首部字段

·定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。

·定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。

6.1.1 内容传送编码(Content-Transfer-Encoding) 

(1)Quoted-printable 编码

·适用于所传送的数据中只有少量的非 ASCII 码的情况。

(2)Base64 编码

·适合任意长度的二进制数据。编码表如下:

用两个连在一起的二个等号“==”和一个等号“=”分别表示最后一组的代码只有 8 位或 16 位.

6.1.2 内容类型

·MIME 标准规定:

        Content-Type 说明必须含有两个标识符:内容类型 (type) 和子类型 (subtype),中间用“/”分开。

·MIME 标准原先定义了 7 个基本内容类型和 15 种子类型。

·MIME 允许发件人和收件人自己定义专用的内容类型。但为避免可能出现名字冲突,标准要求为专用内容类型选择的名字要以字符串 X-开始。

(1)MIME Content-Type 说明中的类型及子类型

Multipart 很有用,使邮件增加了相当大的灵活性。

6.1.3 MIME 举例

欢迎一起学习~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/468141.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue--》深入学习Tailwind CSS掌握优雅而高效的前端样式开发

Tailwind CSS是一个非常强大且灵活的CSS框架,适用于开发者希望高度定制化界面样式的项目。今天博主就 Tailwind CSS 做一个简单介绍以及案例讲解,争取读者阅读文章后入门。 仅靠一篇文章博主也不可能将Tailwind CSS所有内容讲解的面面俱到,在…

揭秘产品迭代计划制定:从0到1打造完美迭代策略

产品迭代计划是产品团队确保他们能够交付满足客户需求的产品以及实现其业务目标的重要工具。开发一个成功的产品迭代计划需要仔细考虑产品的目标、客户需求、市场趋势和可用资源。以下是帮助您创建产品迭代计划的一些步骤:建立产品目标、收集客户反馈、分析市场趋势…

物联网和工业4.0

在当今这个快速发展的技术时代,物联网(IoT)和工业4.0成为了推动全球进入新工业时代的两大驱动力。对于刚入行的人来说,深入理解这两个概念及其背后的技术原理,对于把握未来的职业机会至关重要。 物联网,简…

php数组与字符串函数

php数组与字符串函数 1. php数组2. 字符串函数 1. php数组 在php中,有三种类型的数组: 数值数组 - 带有数字ID键的数组关联数组 - 带有指定的键的数组,每个键关联一个值多维数组 - 包含一个或多个数组的数组 2. 字符串函数 在PHP中&#xf…

一起玩儿Proteus仿真(C51)——05. 红绿灯仿真(一)

摘要:本文介绍如何仿真红绿灯 今天来做一个红绿灯仿真的程序,这个程序主要包括一下这些功能: 模拟的路口为十字交叉路口,假设东西和南北方向都是双向行驶,因此需要设置4组红绿灯和4个倒计时显示屏。倒计时时间最长为9…

web3知识体系汇总

web3.0知识体系 1.行业发展 2. web3的特点: 1、统一身份认证系统 2、数据确权与授权 3、隐私保护与抗审查 4、去中心化运行 Web3.0思维技术思维✖金融思维✖社群思维✖产业思维”,才能从容理解未来Web3.0时代的大趋势。 3.技术栈 Web3.jsSolidit…

OpenCV-38 图像金字塔

目录 一、图像金字塔 1. 高斯金字塔 2. 拉普拉斯金字塔 一、图像金字塔 图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。简单来说,图像金字塔是同一图像不同分辨率的子图…

累加器 - 分布式共享写变量

水善利万物而不争,处众人之所恶,故几于道💦 文章目录 概念注意:应用 概念 因为RDD是可分区的,每个分区在不同的节点上运行,如果想要对某个值进行全局累加,就需要将每个task中的值取到然后进行累…

【C语言进阶】深度剖析数据在内存中的存储--上

1. C语言中的数据类型的简单介绍 注:C99标准里面,定义了bool类型变量。这时,只要引入头文件stdbool.h ,就能在C语言里面正常使用bool类型。 1.1 在C语言中各类型所占内存空间的大小如下 char类型的数据类型大小为1字节即8比特位。…

[NSSCTF]-Web:[SWPUCTF 2021 新生赛]easyrce解析

先看网页 代码审计: error_reporting(0); :关闭报错,代码的错误将不会显示 highlight_file(__FILE__); :将当前文件的源代码显示出来 eval($_GET[url]); :将url的值作为php代码执行 解题: 题目既然允许…

ChatGPT高效提问—prompt实践(视频制作)

ChatGPT高效提问—prompt实践(视频制作) 1.1 视频制作 ​ 制作视频对于什么都不懂的小白来说非常难。而随着AI技术的发展,这件事变得越来越简单,如今小白也可以轻松上手。如何借助ChatGPT来制作短视频。 ​ 其实方法非常简单&a…

SolidWorks学习笔记——入门知识1

目录 1、固定最近文档 2、根据需要自定义菜单栏 3、根据需要增添选项卡 4、命令搜索框 5、鼠标右键长按快速切换视图 6、鼠标笔势 自定义鼠标笔势 1、固定最近文档 图1 固定最近文档 2、根据需要自定义菜单栏 图2 根据需要自定义菜单栏 3、根据需要增添选项卡 图3 根据…