在 Debian 上排查邮件故障,通常要分 发送链路 和 接收链路,以及 本地 / 远程 来看。下面是一套比较系统、可操作的诊断思路。
Debian 常见组合:
查看 MTA:
ps aux | grep -E 'postfix|exim|sendmail'
或:
dpkg -l | grep -E 'postfix|exim|sendmail'
ss -tulnp
常见端口:
例如:
ss -tulnp | grep ':25'
telnet smtp.gmail.com 587
或:
nc -vz mail.example.com 25
systemctl status postfix
journalctl -u postfix -n 50
echo "test" | mail -s "test" user@example.com
或:
sendmail -v user@example.com < /dev/null
postqueue -p
强制重发:
postqueue -f
tail -f /var/log/mail.log
或:
journalctl -u postfix -f
常见错误:
connection timed out → 网络/防火墙relay access denied → 认证/转发配置mail loops back → DNS/MX 配置错误certificate verify failed → TLS 证书问题dig MX example.com
dig A mail.example.com
检查:
测试:
host -t MX example.com
systemctl status dovecot
journalctl -u dovecot -n 50
telnet localhost 143
或:
openssl s_client -connect localhost:993
检查:
ls -ld /var/mail /home/user/Maildir
Postfix + Dovecot 常见权限错误。
iptables -L -n
ufw status
云服务器还需检查:
| 现象 | 可能原因 |
|---|---|
| 能收不能发 | 未配置 relay / 认证 |
| 能发不能收 | MX / Dovecot 问题 |
| 本地能发,外网不行 | 25 端口被封 |
| 退信 “relay denied” | 未允许中继 |
| TLS 报错 | 证书路径错误 |
| 邮件进 spam | 无 SPF / DKIM / DMARC |
dig TXT example.com
dig TXT default._domainkey.example.com
建议:
systemctl statusss -tulnp/var/log/mail.logpostqueue -pdig MXtelnet/nc 测试端口如果你愿意,可以告诉我:
我可以直接帮你定位具体原因。