温馨提示×

怎么排查Debian邮件故障

小樊
40
2026-07-07 13:17:25
栏目: 智能运维

排查 Debian 邮件故障,一般按 “能发 → 能收 → 能中继 → 能认证 → 日志” 的思路来。下面给你一套通用排查流程,适用于 Postfix / Exim / Dovecot 等常见组合。


一、先确认邮件服务是否在运行

systemctl status postfix
systemctl status dovecot

如果没启动:

systemctl start postfix
systemctl start dovecot

二、检查端口是否监听

ss -lntp | grep -E '25|465|587|110|143|993|995'

常见端口:

  • 25:SMTP
  • 465:SMTPS(SSL)
  • 587:SMTP submission
  • 110/143:POP3/IMAP
  • 993/995:IMAPS/POP3S

如果端口没监听,说明服务没起或配置错误。


三、查看邮件系统日志(最关键)

Debian 默认日志位置:

journalctl -u postfix -f
journalctl -u dovecot -f

或传统日志:

tail -f /var/log/mail.log
tail -f /var/log/mail.err

重点看:

  • status=bounced
  • relay=none
  • connection refused
  • authentication failed
  • User unknown

四、测试本地发信

1️⃣ 用 mail / mailx

apt install mailutils
echo "test" | mail -s "test mail" user@domain.com

2️⃣ 看队列

postqueue -p

mailq

卡在队列里说明 发不出去


五、手动测试 SMTP(非常有用)

telnet localhost 25

示例:

HELO test.com
MAIL FROM:<user@domain.com>
RCPT TO:<user@domain.com>
DATA
Hello
.
QUIT

正常应看到:

250 OK

六、DNS / MX 记录检查(发信失败最常见原因)

dig domain.com MX

必须存在 MX 记录,例如:

domain.com.  300  IN  MX  10  mail.domain.com.

还要检查:

dig mail.domain.com A

七、发信被拒 / 收不到(常见原因)

1️⃣ 发信被对方拒

日志常见:

  • 554 5.7.1 Rejected
  • blocked by spam filter
  • Relay access denied

检查:

  • IP 是否被列入黑名单:https://mxtoolbox.com/blacklists.aspx
  • 是否配置 SPF / DKIM / DMARC

2️⃣ 本地收信失败

doveadm log errors
tail -f /var/log/mail.log

检查:

  • 用户是否存在
  • Maildir / Mailbox 权限
  • 磁盘空间
df -h

八、认证问题(587 端口)

测试认证

swaks --to user@domain.com \
      --from user@domain.com \
      --server mail.domain.com \
      --port 587 \
      --auth \
      --tls

若认证失败,检查:

postconf | grep sasl

以及 Dovecot SASL 是否启用。


九、防火墙 & SELinux(Debian 一般无 SELinux)

iptables -L -n
ufw status

放行邮件端口:

ufw allow 25
ufw allow 587
ufw allow 993

十、快速自检清单 ✅

  • [ ] 服务运行
  • [ ] 端口监听
  • [ ] mail.log 无致命错误
  • [ ] MX / A 记录正确
  • [ ] 本地发送成功
  • [ ] 队列是否积压
  • [ ] 是否被当作垃圾邮件
  • [ ] 认证是否通过

如果你愿意,我可以:

直接帮你分析 log判断是 Postfix 还是 Dovecot 的问题按你是“发不出去 / 收不到 / 退信”来精确排查

你可以把:

  • /var/log/mail.log 相关片段
  • postconf -n
  • dovecot -n

贴出来,我可以直接帮你定位 ✅

0