Postfix是Linux上最常用且推荐的邮件传输代理(MTA),轻量、安全、配置清晰,仅需部署即可实现可靠发信。核心步骤包括:确保域名及DNS(SPF/MX)、解封25或启用587端口、关闭SELinux/调整防火墙、安装Postfix并配置myhostname、mydomain、inet_interfaces=loopback-only、mynetworks、smtp_tls_security_level=may,重启服务后用mail命令测试,并通过mail-tester.com验证可信度。

Linux 服务器上配置邮件发送服务器,核心是部署一个邮件传输代理(MTA),最常用、推荐的是 Postfix。它轻量、安全、配置清晰,适合作为发信服务的基础。不需要搭建完整收发系统,只发信的话可跳过 Dovecot 和用户认证部分。
确认基础前提
发信功能依赖几个关键条件,缺一不可:
-
有可用域名:如
example.com,不能用公网 IP 直接发信(多数邮箱会拒收) - DNS MX 记录已配置:虽然只发信不强制要求 MX,但很多接收方(如 Gmail、QQ 邮箱)会反查发信域名的 MX 或 SPF 记录,缺失易被标记为垃圾邮件
- 25 端口未被屏蔽:云服务商(如阿里云、腾讯云)默认封禁 25 端口,需申请解封或改用 587(提交端口)+ TLS
- 关闭 SELinux(CentOS/RHEL)或调整防火墙:避免拦截 Postfix 进程或端口
安装与基础配置 Postfix
以 Ubuntu/Debian 为例(CentOS 使用 yum install postfix):
- 运行
sudo apt update && sudo apt install postfix - 安装时选择 Internet Site,然后输入你的域名(如
example.com)作为“System mail name” - 编辑主配置:
sudo nano /etc/postfix/main.cf,确保以下几项明确设置:
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = loopback-only ← 只监听本地,更安全(若需远程提交则设为 all)
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/108 [::1]/128
home_mailbox = Maildir/
smtp_tls_security_level = may ← 启用 TLS 尝试(兼容多数目标服务器)
保存后执行 sudo systemctl restart postfix。
测试能否正常发信
最简方式是用命令行发送测试邮件:
echo "这是一封测试邮件" | mail -s "Postfix 测试" yourname@gmail.com- 若提示
command not found: mail,先装mailutils(Ubuntu)或mailx(CentOS) - 检查日志:
sudo tail -f /var/log/mail.log,看是否有status=sent或报错(如 connection refused、relay denied)
常见失败原因:目标邮箱拒收(查日志中的“rejected”或“554”)、DNS 解析失败、25 端口不通、发信域名无 SPF 记录。
增强可信度(避免进垃圾箱)
仅能发信还不够,要让主流邮箱信任你,至少补充两项 DNS 记录:
-
SPF 记录:在域名 DNS 添加一条 TXT 记录,内容如:
v=spf1 a mx ip4:你的服务器IP ~all -
DKIM(可选但强烈建议):用
opendkim工具生成密钥,签名发信。Postfix 通过 milter 接入,配置稍复杂但大幅提升投递率
完成后,可用 mail-tester.com 发一封测试信,获取评分和改进建议。


















