![如何摆脱“延迟(-52):重试时间尚未达到”exim4 日志?](https://linux22.com/image/695568/%E5%A6%82%E4%BD%95%E6%91%86%E8%84%B1%E2%80%9C%E5%BB%B6%E8%BF%9F%EF%BC%88-52%EF%BC%89%EF%BC%9A%E9%87%8D%E8%AF%95%E6%97%B6%E9%97%B4%E5%B0%9A%E6%9C%AA%E8%BE%BE%E5%88%B0%E2%80%9Dexim4%20%E6%97%A5%E5%BF%97%EF%BC%9F.png)
我在 exim4 的主日志中有一个这样的日志。我对 exim4 所做的一切只是学习,所以所有邮件都是假的。现在我尝试管理这些经常出现的日志:
2016-12-20 14:28:01 1cJ2UW-0006Yq-3m == [email protected] R=manualrouteadam T=maildir_home defer (-52): Retry time not yet reached
2016-12-20 14:28:01 1cJ8rt-0001Ur-Qj == [email protected] R=manualrouteadam T=maildir_home defer (-52): Retry time not yet reached
2016-12-20 14:28:01 1cJ2YZ-0000W9-W5 == [email protected] R=manualrouteadam T=maildir_home defer (-52): Retry time not yet reached
2016-12-20 14:28:01 1cIsqP-0002Xn-KY == [email protected] R=dnslookup T=remote_smtp defer (-53): retry time not reached for any host
2016-12-20 14:28:01 1cJE0z-00028i-Ve == [email protected] R=manualrouteadam T=maildir_home defer (-52): Retry time not yet reached
2016-12-20 14:28:01 1cIrmt-0002Hz-Td == [email protected] R=dnslookup T=remote_smtp defer (-53): retry time not reached for any host
2016-12-20 14:28:01 1cIsS3-0002Rj-MM == [email protected] R=dnslookup T=remote_smtp defer (-53): retry time not reached for any host
2016-12-20 14:28:01 1cJ2X1-0000R4-EY == [email protected] R=manualrouteadam T=maildir_home defer (-52): Retry time not yet reached
2016-12-20 14:28:01 End queue run: pid=11801
既然我不需要它,该如何删除它?
答案1
有时您可能会注意到某些地址出现延迟错误:任何主机的重试时间都未达到。
1Ruz3Y-0005TQ-Ek == [email protected] R=dnslookup T=remote_smtp defer (-53): retry time not reached for any host
因此,您需要找出用于管理 address.com 电子邮件的 smtp 服务器。为此 — 使用 host 命令或更高级的 dig,无论你最喜欢什么。应在您的邮件服务器上发出此命令:
host domain.com
domain.com has address X.X.X.X
domain.com mail is handled by 50 remote.smtp.server.
首先确保远程 smtp 服务器正在接受 25/tcp 上的连接并且运行时没有任何不可预测的错误。
telnet remote.smtp.server 25
Trying x.x.x.x...
Connected to remote.smtp.server.
Escape character is '^]'.
220 remote.smtp.server bla-bla-bla
下一步是整理 exim 重试数据库:
/usr/sbin/exim_tidydb -t 1d /var/spool/exim retry > /dev/null
在某些情况下你可能想要删除所有重试条目:
rm -rf /var/spool/exim/db/retry
rm -rf /var/spool/exim/db/retry.lockfile
来源 :https://linuxnlenux.wordpress.com/2013/08/11/exim-defer-53-retry-time-not-reached-for-any-host/
答案2
运行命令:
strings /var/spool/exim/db/retry
要查看 exim 无法访问哪些主机,您将获得如下输出:
No route to host
T:mail.siemens.com:138.162.19.16
Permission denied
T:mail.siemens.com:2a01:7a01::f05c:91cf:feb8:b2e1
修复错误,查看错误出在哪里。
确保它不是 DNS 旧缓存条目问题,要解决这个问题,请编辑文件/etc/resolve.conf
并将以下行放在第一个条目之前的顶部nameserver
:
# File: /etc/resolve.conf
nameserver 8.8.8.8
这指示使用 google DNS,以便 exim 正确地进行检查。
额外的可选步骤,从 exim 队列中删除所有可能被冻结的消息:
exiqgrep -i | xargs exim -Mrm
重启 exim:
systemctl restart exim