调试 Debian 邮件服务器是一个系统性工作,通常包含 服务状态检查、日志分析、网络与端口、DNS/证书、配置验证、发信测试 等步骤。下面我按“从外到内、由浅入深”的方式给你一套实用调试流程,适用于 Postfix / Exim / Dovecot 等常见组合。
systemctl status postfix
systemctl status dovecot
# 若用 exim
systemctl status exim4
如果未运行:
journalctl -xe
/var/log/mail.log
/var/log/mail.err
/var/log/syslog
实时查看:
tail -f /var/log/mail.log
常见关键词:
status=bouncedrelay=connection refusedcertificate verify failedtimeoutss -lntp | grep -E '25|465|587|110|143|993|995'
iptables -L -n
# 或
ufw status
确保开放:
telnet mail.example.com 25
正常应有:
220 mail.example.com ESMTP Postfix
dig MX example.com
dig -x 1.2.3.4
dig TXT example.comdig TXT default._domainkey.example.comdig TXT _dmarc.example.compostfix check
postconf -n
编辑 /etc/postfix/main.cf:
debug_peer_level = 3
或临时:
postconf -e "debug_peer_level=3"
systemctl reload postfix
sendmail -v user@example.com
Subject: test
hello
.
telnet localhost 143
或:
openssl s_client -connect mail.example.com:993
dovecot -n
doveadm user testuser
doveadm auth testuser
openssl x509 -in /etc/ssl/certs/mail.crt -noout -text
openssl s_client -starttls smtp -connect mail.example.com:25
| 现象 | 可能原因 |
|---|---|
| 能收不能发 | 587 端口未开 / 认证失败 |
| 能发不能收 | Dovecot 未运行 / 防火墙 |
| 邮件进垃圾箱 | SPF/DKIM/DMARC 缺失 |
| 外部连不上 25 | 云厂商封端口 |
| 证书报错 | 证书路径错误 / 过期 |
swaks # SMTP 测试神器
mailutils # 命令行发信
tcpdump # 抓包分析
示例:
swaks --to user@example.com --from me@example.com --server mail.example.com
如果你愿意,可以告诉我:
我可以直接帮你定位问题。