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

2024-02-14 19:04

本文主要是介绍电子邮件、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 举例

欢迎一起学习~

这篇关于电子邮件、SMTP、POP3 、IMAP协议的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/709336

相关文章

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

Modbus-RTU协议

一、协议概述 Modbus-RTU(Remote Terminal Unit)是一种基于主从架构的通信协议,采用二进制数据表示,消息中的每个8位字节含有两个4位十六进制字符。它主要通过RS-485、RS-232、RS-422等物理接口实现数据的传输,传输距离远、抗干扰能力强、通信效率高。 二、报文结构 一个标准的Modbus-RTU报文通常包含以下部分: 地址域:单个字节,表示从站设备

网络原理之TCP协议(万字详解!!!)

目录 前言 TCP协议段格式 TCP协议相关特性 1.确认应答 2.超时重传 3.连接管理(三次握手、四次挥手) 三次握手(建立TCP连接) 四次挥手(断开连接)  4.滑动窗口 5.流量控制 6.拥塞控制 7.延迟应答 8.捎带应答  9.基于字节流 10.异常情况的处理 小结  前言 在前面,我们已经讲解了有关UDP协议的相关知识,但是在传输层,还有

匹配电子邮件地址的正则表达式

这个正则表达式 QRegularExpression regex(R"((\w+)(\.|_)?(\w+)@(\w+)(\.(\w+))+))"); 用于匹配电子邮件地址的格式。下面是对这个正则表达式的逐步解析和解释: 1. QRegularExpression 构造函数 QRegularExpression regex(R"((\w+)(\.|_)?(\w*)@(\w+)(\.(\w+))+

DNS协议基础笔记

1.定义 DNS(Domain Name System,域名系统)是互联网的一项核心服务,它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。 2.域名解析过程 当用户在浏览器中输入一个域名,浏览器首先会检查自己的缓存中是否有该域名对应的 IP 地址。本地 DNS 服务器收到查询请求后,首先会检查自己的缓存中是否有该域名对应的 IP 地址。根域名服务器收到查询请

4G模块、WIFI模块、NBIOT模块通过AT指令连接华为云物联网服务器(MQTT协议)

MQTT协议概述 MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,它被设计用来提供一对多的消息分发和应用之间的通讯,尤其适用于远程位置的设备和高延迟或低带宽的网络。MQTT协议基于客户端-服务器架构,客户端可以订阅任意数量的主题,并可以发布消息到这些主题。服务器(通常称为MQTT Broker)则负责接受来自客户端的连接请求,并转发消

HTTP协议 HTTPS协议 MQTT协议介绍

目录 一.HTTP协议 1. HTTP 协议介绍 基本介绍: 协议:  注意: 2. HTTP 协议的工作过程 基础术语: 客户端: 主动发起网络请求的一端 服务器: 被动接收网络请求的一端 请求: 客户端给服务器发送的数据 响应: 服务器给客户端返回的数据 HTTP 协议的重要特点: 一发一收,一问一答 注意: 网络编程中,除了一发一收之外,还有其它的模式 二.HTT

CAMediaTiming协议

今天看下下CALayer这个类,里面的属性是实现CAMediaTiming这个协议的,这里简单介绍一下CAMediaTiming协议里面的属性。官网链接 如下 beginTime:开始时间(和父类相关) timeOffset:动态的本地时间t,tp是父类事件。t = (tp - begin) * speed + offset.用于暂停一个layer。  fillMode:layer完成后的