You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Exim、Dovecot无法发送邮件:/var/log/exim/mainlog多错误求助

排查Exim邮件发送超时问题的解决方案

你已经确认了IP未被拉黑、本地25端口连通正常,结合日志里的defer (110): Connection timed out和login authenticator fai...错误,咱们可以从以下几个方向深入排查:

1. 验证目标邮件服务器的SMTP连通性

日志里显示是连接hotmail.fr的服务器超时,这时候需要直接从你的服务器测试对目标MX服务器的25端口连通性:

# 先获取hotmail.fr的MX记录
dig mx hotmail.fr
# 然后telnet其中一个MX服务器的25端口,比如mx1.hotmail.com
telnet mx1.hotmail.com 25

如果这个telnet操作超时,很大概率是你的服务器所在机房/服务商封禁了出站25端口(很多云服务商为了防垃圾邮件默认禁用25端口)。这种情况下你可以:

  • 联系服务商申请解封出站25端口;
  • 改用第三方SMTP中继服务(比如用专业邮件服务的587端口发送,需要在Exim里配置对应authenticator)。

2. 检查Exim的DNS解析配置

错误中的R=lookuphost表示Exim通过DNS查找目标MX记录,若DNS解析异常也会导致连接超时:

# 测试DNS解析是否正常
dig mx hotmail.fr

如果解析慢、无结果或返回错误,可以尝试更换服务器的DNS服务器(比如修改/etc/resolv.conf添加nameserver 8.8.8.8),之后重启Exim服务:

systemctl restart exim

3. 修复Exim的Login Authenticator配置

日志里提到login authenticator fai...(认证失败),需要检查Exim的认证配置:

  • 找到Exim的主配置文件(通常是/etc/exim.conf或/etc/exim4/exim4.conf),定位到login类型的authenticator段落;
  • 确认配置中的username、password是否正确,同时检查是否启用了合适的加密方式(比如tls_require = true如果目标服务器要求TLS);
  • 如果你是通过PHP mail()函数发送,默认是本地投递,需确保Exim允许本地连接无需认证(检查配置中的acl_smtp_rcpt规则,是否放过本地IP的请求)。

4. 检查服务器防火墙/出站规则

虽然本地telnet 25端口正常,但可能防火墙限制了出站的25端口:

# 查看iptables出站规则
iptables -L OUTPUT -n
# 如果用ufw,检查规则
ufw status
# 如果用firewalld
firewall-cmd --list-all

确保没有规则阻止TCP 25端口的出站请求,若有则添加允许规则。

5. 手动测试Exim发送,获取详细日志

直接用Exim命令行发送测试邮件,能拿到更详细的调试信息:

echo "Test email content" | exim -v ln-1@hotmail.fr

观察输出中的每一步,比如DNS解析是否成功、是否发起了连接、认证过程是否出错,这能帮你快速定位问题根源。

内容的提问来源于stack exchange,提问作者Marceau Lenoir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:07:51