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。