首页/计算机网络/06-application/电子邮件系统 🔗 在 Obsidian 中打开
计算机网络 · 06-application

电子邮件系统

难度 ★★★重要度 ★★★★★ 考查频率 低 计算机网络/应用层POP3IMAPMIME电子邮件
速查
电子邮件系统由 用户代理(UA)、邮件服务器、传输协议 组成:SMTP(端口 25,推协议)负责发送,POP3/IMAP(拉协议)负责接收;SMTP 仅支持 7 位 ASCII,需 MIME 扩展二进制与中文。

一、电子邮件系统组成

┌─────────┐    SMTP    ┌─────────────┐   SMTP   ┌──────────────┐
│  用户代理 │ ────────→ │  邮件服务器   │ ───────→ │  邮件服务器    │
│  (UA)    │  (发送)    │  (发送方)     │  (传输)   │  (接收方)     │
└─────────┘           └─────────────┘          └──────┬───────┘
                                                       │
                                              POP3/IMAP │
                                                       ▼
                                                 ┌─────────┐
                                                 │  用户代理 │
                                                 │  (UA)    │
                                                 └─────────┘
组件说明例子
用户代理(UA)邮件客户端Outlook, Thunderbird, 手机邮件 App
邮件服务器存储和转发邮件Exchange, Postfix, Sendmail
邮件传输协议发送邮件SMTP
邮件接收协议接收邮件POP3, IMAP

二、SMTP(简单邮件传输协议)

基本信息

  • 端口:25(明文)/ 465(SSL)/ 587(STARTTLS)
  • 传输层:TCP
  • 模式:推协议(Push)

SMTP 通信过程(节选)

客户端(发送方服务器)             服务器(接收方服务器)
  │  220 mail.example.com SMTP    │
  │ ←──────────────────────────── │
  │  HELO sender.com              │
  │ ────────────────────────────→ │
  │  250 Hello sender.com         │
  │  MAIL FROM:<alice@sender.com> │
  │  RCPT TO:<bob@receiver.com>   │
  │  DATA                         │
  │  Subject: Hello ...           │
  │  .  ← 以单独的 . 结束          │
  │  250 OK: Message queued       │
  │  QUIT                         │

SMTP 命令

命令说明
HELO/EHLO问候,标识客户端
MAIL FROM指定发件人
RCPT TO指定收件人(可多个)
DATA开始邮件内容
QUIT结束会话
RSET重置会话
VRFY验证用户
NOOP空操作

SMTP 的限制

  • 只能传输 7 位 ASCII 文本
  • 不能传输二进制文件
  • 不能传输非英语字符
  • 需要 MIME 扩展

三、MIME(多用途互联网邮件扩展)

解决的问题

  • SMTP 只能传 7 位 ASCII
  • MIME 允许传输:图片、音频、视频、中文等

MIME 头部字段

MIME-Version: 1.0
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="file.pdf"
主类型子类型说明
textplain, html文本
imagejpeg, png, gif图片
audiomp3, wav音频
videomp4, avi视频
applicationpdf, zip, octet-stream应用数据
multipartmixed, alternative多部分组合

编码方式

编码说明
7bit7 位 ASCII
quoted-printable非 ASCII 字符用 =XX 表示
base64二进制数据编码为 ASCII
8bit8 位字符

base64 编码示例

原始数据: Man
ASCII: 77 97 110
二进制: 01001101 01100001 01101110
6位分组: 010011 010110 000101 101110
base64: T W F u
结果: TWFu

四、POP3(邮局协议版本 3)

基本信息

  • 端口:110(明文)/ 995(SSL)
  • 模式:拉协议(Pull)
  • 特点:简单,下载后可删除服务器邮件

工作模式

客户端 ──TCP连接──→ 服务器(端口110)
          ├─ 认证阶段: USER + PASS
          ├─ 事务阶段: LIST, RETR, DELE
          └─ 更新阶段: QUIT
命令说明
USER用户名
PASS密码
STAT邮箱状态(邮件数、大小)
LIST列出邮件
RETR n获取第 n 封邮件
DELE n删除第 n 封邮件
NOOP空操作
RSET撤销删除标记
QUIT退出(执行删除)
问题邮件下载到本地后,服务器删除副本;不支持在服务器上管理邮件,也不支持多设备同步。

五、IMAP(互联网消息访问协议)

基本信息

  • 端口:143(明文)/ 993(SSL)
  • 模式:拉协议(Pull)
  • 特点:邮件保存在服务器,支持多设备同步
特性POP3IMAP
邮件存储下载到本地保存在服务器
多设备同步不支持支持
服务器管理不支持支持(文件夹)
离线访问支持需要缓存
带宽使用较高

IMAP 功能

  • 创建/删除/重命名邮箱文件夹
  • 在服务器上搜索邮件
  • 部分获取(只获取邮件头)
  • 标记邮件状态(已读、星标等)

六、邮件传输完整流程

Alice的UA → Alice的邮件服务器 → (SMTP) → Bob的邮件服务器 → Bob的UA
    │              │                           │           │
    │ SMTP提交     │ SMTP中继                   │ POP3/IMAP │
    │ (端口587)    │ (端口25)                   │ (端口110/143)│

邮件地址格式

用户名@域名
alice@example.com
│       │
│       └─ 邮件服务器域名
└─ 用户名(邮箱标识)

七、安全扩展

SMTP 认证(SMTP AUTH)

  • 防止未授权用户发送邮件
  • 使用用户名/密码认证

STARTTLS

  • 将明文 SMTP 连接升级为 TLS 加密
  • 端口 587
技术作用
SPF验证发件服务器 IP 是否被授权
DKIM邮件数字签名,验证未被篡改
DMARCSPF + DKIM 的策略框架

记忆卡片

SMTP、POP3、IMAP 各自的作用?
SMTP 用于发送邮件(推协议);POP3 用于接收(下载到本地,简单);IMAP 用于接收(保存在服务器,支持多设备同步)。
为什么需要 MIME?
SMTP 只能传输 7 位 ASCII 文本;MIME 扩展支持传输二进制文件、图片、音视频、非英语字符等。
POP3 和 IMAP 的核心区别?
POP3 下载邮件到本地后删除服务器副本,不支持多设备同步;IMAP 邮件保存在服务器,支持多设备同步和服务器端管理。
SMTP 的默认端口?推还是拉?
端口 25(明文)/ 465(SSL)/ 587(STARTTLS);SMTP 是推协议(发送方主动推送到接收方服务器)。

交互动画 · 发送与接收路径

用户代理 UA 邮件服务器 用户代理 UA
发送:UA 用 SMTP(推协议)把邮件交到邮件服务器
示意图:发送是「推」,接收是「拉」;SMTP 负责发送,POP3/IMAP 负责接收。
手动模式
Alice 的 UA 邮件 邮件服务器 SMTP 提交(587) SMTP 中继(25) POP3(110) HELO / MAIL FROM USER / RETR / DELE
选择发送/接收路径,逐步查看邮件投递流程
SMTP 推协议发信;POP3 拉协议取信

相关知识点

dns-domain-name-system

↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。