Postfix 入门:在 Ubuntu 上安装和配置邮件传输代理

Postfix MTA Ubuntu SMTP
披露:Email Wiki 上的部分链接为 VPS 服务商(如 Vultr)的联盟链接。通过这些链接购买,我们可能获得佣金,但不会对您产生额外费用。这有助于我们保持网站免费。所有教程均独立撰写,我们仅推荐我们认为适合自建邮件服务器的可靠服务。

Postfix 是互联网上部署最广泛的邮件传输代理(MTA)。它负责邮件的发送和转发,是绝大多数自建邮件服务器的核心组件。本文将带你在 Ubuntu 22.04 上完成 Postfix 的安装与配置。

前提条件

  • 一台运行 Ubuntu 22.04 的 VPS 或独立服务器
  • 公网 IP 地址(未被列入黑名单)
  • 一个域名,并拥有 DNS 管理权限
  • root 或 sudo 权限

第一步:安装 Postfix

更新软件包列表并安装 Postfix:

sudo apt update
sudo apt install postfix -y

安装过程中会弹出配置对话框,选择 Internet Site,然后输入你的完全限定域名(FQDN),例如 mail.example.com

验证安装:

postconf mail_version

第二步:配置核心参数

Postfix 主配置文件为 /etc/postfix/main.cf,打开编辑:

sudo nano /etc/postfix/main.cf

设置以下核心参数:

# 主机名与域名
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain

# 监听所有网络接口
inet_interfaces = all
inet_protocols = ipv4

# 可信网络(本机 + 自己的 IP)
mynetworks = 127.0.0.0/8

# 本地邮件投递位置
home_mailbox = Maildir/

# 中继限制
smtpd_relay_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination

编辑完成后重新加载 Postfix:

sudo systemctl reload postfix

第三步:配置 DNS 记录

为让其他服务器能找到并信任你的邮件服务器,需要设置以下 DNS 记录:

MX 记录 — 告知其他服务器向哪里投递邮件:

example.com.  IN  MX  10  mail.example.com.

A 记录 — 解析邮件服务器主机名:

mail.example.com.  IN  A  你的服务器IP

PTR 记录(反向 DNS) — 通过 VPS 服务商的控制台配置,将 你的服务器IP 的 PTR 指向 mail.example.com。这对防止被识别为垃圾邮件至关重要。

第四步:启用 TLS 加密

使用 Let’s Encrypt 申请免费证书(推荐):

sudo apt install certbot -y
sudo certbot certonly --standalone -d mail.example.com

/etc/postfix/main.cf 中添加 TLS 配置:

# 接收端 TLS(smtpd)
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file  = /etc/letsencrypt/live/mail.example.com/privkey.pem
smtpd_tls_security_level = may
smtpd_tls_loglevel = 1

# 发送端 TLS(smtp)
smtp_tls_security_level = may
smtp_tls_loglevel = 1

重新加载:

sudo systemctl reload postfix

第五步:发送测试邮件

安装 mailutils 并发送测试邮件:

sudo apt install mailutils -y
echo "测试邮件正文" | mail -s "测试主题" you@gmail.com

查看邮件日志:

sudo tail -f /var/log/mail.log

看到 status=sent 说明发送成功。

第六步:检查 IP 信誉

上线前务必检查你的 IP 是否被列入黑名单:

host -t txt 1.0.0.127.zen.spamhaus.org

如果 IP 被列入,联系 VPS 服务商或向相关机构申请移除。

常见问题

25 端口连接被拒 — 很多 VPS 服务商默认封锁出站 25 端口,需要联系客服申请开放,或改用 587 端口(提交端口)进行认证发送。

邮件进垃圾箱 — 通常需要配置 SPF、DKIM 和 DMARC 记录。参见邮件认证指南

Postfix 无法启动 — 执行 sudo postfix check 检查配置语法,并查看 /var/log/mail.err 中的错误信息。

下一步

Postfix 只负责 SMTP(发送/中继)。要让用户通过 IMAP 或 POP3 收取邮件,还需要配合 Dovecot 使用。参见配置 Dovecot

准备好部署你的邮件服务器了吗?

你需要一台 IP 信誉干净的可靠 VPS。立即使用 Vultr——独立 IP、NVMe SSD、全球数据中心,最低 $6/月。