在 CentOS 上“调试邮件服务器”通常涉及 Postfix / Sendmail / Exim 等 MTA,以及 Dovecot(收信)、DNS(MX、SPF、DKIM、DMARC)、防火墙等。下面按排查思路 + 常用命令给你一个实用调试指南。
ps aux | grep -E 'postfix|sendmail|exim|dovecot'
常见组合:
systemctl status postfix
systemctl status dovecot
启动 / 重启:
systemctl restart postfix
systemctl restart dovecot
journalctl -u postfix -f
或传统日志:
tail -f /var/log/maillog
常见关键词:
status=bounced → 被拒relay= → 转发情况NOQUEUE → 配置或权限问题timeout → 网络 / 防火墙ss -lntp | grep -E '25|465|587|110|143|993|995'
常见端口:
| 服务 | 端口 |
|---|---|
| SMTP | 25 |
| SMTPS | 465 |
| Submission | 587 |
| POP3 | 110 |
| IMAP | 143 |
| IMAPS | 993 |
| POP3S | 995 |
firewall-cmd --list-all
放行示例:
firewall-cmd --add-port=25/tcp --permanent
firewall-cmd --reload
云服务器还要检查 安全组
dig MX example.com
dig -x 你的公网IP
dig TXT example.com
dig TXT default._domainkey.example.com
telnet localhost 25
示例:
HELO test.com
MAIL FROM: admin@example.com
RCPT TO: user@gmail.com
DATA
Subject: test
hello
.
QUIT
看 /var/log/maillog 反应
postfix check
postconf -n
postconf -e "debug_peer_level = 3"
systemctl restart postfix
日志会更详细
dovecot -n
测试登录:
telnet localhost 110
USER user
PASS password
| 问题 | 可能原因 |
|---|---|
| 发不出外网 | 25端口被封 |
| 被当垃圾邮件 | 无SPF/DKIM |
| 本地能发不能收 | dovecot未运行 |
| relay denied | 未配置mynetworks |
| 连接超时 | 防火墙/安全组 |
yum install telnet mailx bind-utils -y
测试发信:
echo "test" | mail -s "test" user@example.com
如果你愿意,可以告诉我:
我可以直接帮你精准定位问题。