邮件服务器详解:Postfix、Exim 及其他

邮件服务器究竟是什么、运行它的软件 - Postfix、Exim、Dovecot、Exchange 及托管服务商 - 一封邮件如何从发件人抵达信箱,以及如何判断某个域名使用了什么。

邮件服务器(mail server)是负责接收、路由、存储并投递电子邮件的软件。当你发送一条消息时,它并不会直接送达对方手中——而是要经过一台或多台邮件服务器,由它们找到收件人、决定是否接受这封邮件,并将其放入邮箱。理解这些组成部分,就能明白为什么一个地址看上去完全有效,却仍然可能被退回。

1. “一台邮件服务器”内部的三种角色

  • MTA — Mail Transfer Agent(邮件传输代理):通过 SMTP 在服务器之间发送和转发邮件。这正是我们的检测器所对话的部分。例如:Postfix、Exim、Sendmail。
  • MDA — Mail Delivery Agent(邮件投递代理):接收已被接受的邮件,并将其投放到正确的邮箱中。通常内置于 MTA 之中或与其配套使用(例如 Dovecot 的 LMTP)。
  • 邮箱 / 访问服务器:让用户通过 IMAP 或 POP3 阅读邮件(也为 webmail 提供支持)。例如:Dovecot。

人们常说的“邮件服务器”,通常是由这些部分协同工作的一整套体系,再加上告知全世界往何处、以何种方式发送邮件的 DNS 记录(MX、SPF、DKIM、DMARC)。

2. 一封邮件的旅程

Your app  ──SMTP──▶  Sending MTA  ──SMTP──▶  Recipient MX (MTA)
                                                   │
                                          spam & policy checks
                                                   ▼
                                          MDA ──▶ Mailbox store
                                                   ▲
                              User reads via IMAP / POP3 / webmail

MX 记录指向收件人的 MTA。该 MTA 决定返回 250(接受)、550(无此用户)还是 4xx(稍后再试)。这个单一的决定正是电子邮件验证的核心所在。

3. MTA 软件(SMTP 一侧)

软件常见于何处说明
PostfixLinux 服务器、托管面板、专用设备上最为常见快速、安全、配置简单。无数邮件部署背后的默认选择。
EximcPanel / 共享主机路由极为灵活;是 cPanel 和 Debian 上的默认 MTA。
Sendmail较旧 / 遗留的 Unix 系统最初的主力军;功能强大,但配置较难。
OpenSMTPDOpenBSD 及注重安全的部署小巧、简单、以安全为核心的配置。
Microsoft Exchange企业 Windows 环境完整的群件(邮件 + 日历 + 联系人);可本地部署或采用 Exchange Online。
qmail / netqmail遗留的小众场景历史上因安全性而广受欢迎;如今很少为新系统所选用。

4. 邮箱访问与一体化体系

IMAP/POP3 服务器让人们真正打开自己的邮件:Dovecot(迄今为止最为常见)、Courier 和 Cyrus。一体化体系将 MTA + IMAP + webmail + 反垃圾邮件打包在一起,免去你手动拼装的麻烦:

  • Mailcow 和 iRedMail — 热门的自托管体系(Postfix + Dovecot + Rspamd + webmail)。
  • Mail-in-a-Box — 一条命令搭建的个人邮件服务器。
  • Zimbra 和 SOGo — 带 webmail 的群件(邮件 + 日历 + 联系人)。

5. 托管邮件(无需自行运行服务器)

如今大多数域名根本不运行自己的 MTA——而是将其 MX 记录指向某个服务商:

  • Google Workspace(Gmail)— MX 指向 aspmx.l.google.com。
  • Microsoft 365(Exchange Online)— MX 指向 <domain>.mail.protection.outlook.com。
  • Zoho、Proton、Fastmail、Yandex、iCloud+ — 各自拥有易于辨识的 MX 主机名。
  • Amazon SES、SendGrid、Mailgun、Postmark — 用于事务性/批量邮件的发送服务(往往与域名接收邮件所用的系统不同)。

6. 垃圾邮件与安全网关

规模较大的域名会在真正的邮箱前面加上一层过滤:Proofpoint(pphosted.com)、Mimecast、Barracuda、Cisco/IronPort,或是 Rspamd、SpamAssassin 之类的软件过滤器。MX 记录所指向的正是它们的服务器,因此它们是检测器最先遇到的对象——而且它们往往会谨慎应答,以阻止他人探测。

7. 如何判断一个域名使用了什么

有两条可靠的线索,均为公开信息:

  • MX 主机名模式 — 通过 MX lookup 返回的名称往往能立刻暴露服务商(Google、Microsoft、Proofpoint、Zoho…)。
  • SMTP 横幅 — 连接时,MTA 会以一行 220 信息打招呼,其中常常会标明软件名称,例如 220 mail.example.com ESMTP Postfix 或 ... ESMTP Exim 4.96 或 Microsoft ESMTP MAIL Service。

这正是我们的工具所检查的层面。用 MX Lookup 跑一个域名即可查看其邮件服务器,或用 email checker 检查某个具体地址。另请参阅 Web 服务器的类型 — 网站和邮件服务器是相互独立的两套系统。