电子邮件

了解 SMTP 和 POP3 协议,可能在选择题中考察。

电子邮件系统

电子邮件系统由 用户代理、邮件服务器 以及 电子邮件协议 这三个核心组成部分协同工作,确保邮件的发送、接收和存储。

SMTP
客户
SMTP
服务器
SMTP
客户
发件人
用户代理
发件人
邮件服务器
发送邮件
SMTP
POP3
服务器
SMTP
服务器
接收方
邮件服务器
POP3
客户
收件人
用户代理
发送邮件 SMTP
读取邮件
POP3
TCP
连接
TCP
连接
TCP 连接

用户代理

用户代理(UA, User Agent)是用户与电子邮件系统交互的接口,通常是邮件客户端软件(如 qq 邮箱网页界面、Outlook 等)。

功能:

  • 提供用户友好的界面,用于撰写、发送、接收和阅读邮件。
  • 管理邮件文件夹(如收件箱、已发送、草稿)。
  • 与邮件服务器通信以发送或获取邮件。

邮件服务器

邮件服务器(Mail Server)是电子邮件系统的核心,负责存储、转发和管理邮件。

功能:

  • 接收来自用户代理的邮件并存储。
  • 根据邮件的目标地址,通过 SMTP 协议将邮件转发到目标邮件服务器。
  • 提供邮件存储功能,供用户通过 POP3/IMAP 协议访问。

SMTP

SMTP(Simple Mail Transfer Protocol)是用于邮件发送的标准协议,负责在邮件服务器之间或从用户代理到邮件服务器传输邮件。

功能:

  • 定义了邮件如何从发送方传递到接收方的邮件服务器。
  • 工作在 TCP/IP 协议之上,通常使用端口 25(或加密端口 587)。
  • 仅负责邮件的发送,不涉及邮件的接收或存储。

工作流程:

  • 用户代理通过 SMTP 将邮件发送到发送方的邮件服务器。
  • 发送方服务器通过 SMTP 与接收方服务器通信,将邮件传递到目标服务器。

POP3

POP3 是用于从邮件服务器检索邮件的协议,允许用户将邮件下载到本地设备。

功能:

  • 用户代理通过 POP3 连接到邮件服务器,下载邮件到本地。
  • 默认情况下,邮件下载后会从服务器删除(可配置保留)。
  • 工作在 TCP/IP 协议之上,通常使用端口 110(或加密端口 995)。

工作流程:

  • 用户代理通过 POP3 登录服务器。
  • 下载新邮件到本地设备。
  • 可选择删除服务器上的邮件副本。
注意

需要注意的是,SMTP 使用的是“推送”(Push)方式进行通信。当用户代理发送邮件,或者邮件在邮件服务器之间传递时,SMTP 客户端会将邮件主动“推送”到 SMTP 服务器。而 POP3 则采用“拉取”(Pull)方式进行通信。当用户需要查看邮件时,用户代理会向邮件服务器发出请求,从服务器中“拉取”用户邮箱里的邮件。

电子邮件格式

一封电子邮件由 信封内容 两部分组成,其中 邮件内容 又可分为 首部主体
邮件的 首部格式 由 RFC 标准定义,而 主体部分 则由用户自由撰写。

用户在填写完邮件首部后,系统会自动提取信封所需的信息,无需用户手动填写信封内容。

邮件首部由若干 首部行 组成,每行格式为:关键字: 值。其中:

  • To:必填,指定一个或多个收件人的电子邮件地址,格式为 用户名@域名,如 abc@csgraduates.com。用户名在所属域名下必须唯一,从而保证该邮箱地址在整个互联网上唯一。
  • Subject:可选,表示邮件主题,用于概括邮件内容。
  • From:必填,表示发件人邮箱地址,通常由邮件系统自动填写。

首部和主体之间用一个空行分隔。以下是一个典型邮件内容示例:

From: sender@example.com
To: abc@cskaoyan.com
Subject: Meeting Schedule

Dear team,
Please find the meeting schedule attached.

MIME

MIME(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展)是为了解决传统电子邮件格式的局限性而提出的一种扩展标准。

早期的电子邮件只能传输 纯文本(ASCII 码),不支持发送图片、音频、视频或非英语字符(如中文)。这严重限制了电子邮件的用途。MIME 的出现,就是为了解决这些问题。

Sender
User Agent
MIME
Message
Transfer Agent
Receiver
User Agent
MIME
Message
Transfer Agent
非 ASCII 代码
7 位 ASCII 代码
非 ASCII 代码
7 位 ASCII 代码
7 位 ASCII 代码

MIME 主要包含以下三点 核心功能

  1. 支持非 ASCII 字符
    • 允许使用 UTF-8 等编码发送包含中文、法语等字符的邮件内容。
  2. 支持多媒体内容
    • 可以发送图像(如 JPEG、PNG)、音频、视频等多种格式的附件或内嵌内容。
  3. 支持多部分内容(multipart)
    • 一封邮件可以同时包含文本和附件,甚至不同格式的内容(例如纯文本和 HTML 格式的正文)。