我是Exim的新手,我将它用作智能主机(从用户那里收回电子邮件并发送给我的ISP).
系统工作正常,但我对冻结的消息有一些问题.我有时会查看队列,并且有一些没有发件人的冻结邮件,因此Exim无法发送它们,因为如果没有发件人,则无法通过ISP进行身份验证.
我在哪里可以开始调试这个?
谢谢你们.
Tod*_*ons 23
这些是退回邮件.有些东西是通过您的邮件服务器发送邮件,但收件人不接受它,因此您的系统会生成退回邮件.这些反弹信息也被拒绝,因此它们被外部MTA"冻结".您需要确定消息来自何处,并停止这些未经授权的消息流.
exigrep 1UorWC-0002Nz-Mz /var/log/exim/main.log
(或者你的道路是什么)
这将在邮件日志中找到退回邮件.我在邮件队列中选择了一条冻结的邮件作为示例(1UosOk-0000ej-KG):
# exigrep 1UosOk-0000ej-KG /var/log/exim/main.log
+++ 1UosOk-0000ej-KG has not completed +++
2013-06-18 09:40:22 1UosOk-0000ej-KG <= <> R=1UosOf-0000bX-BV U=www P=local S=894
2013-06-18 09:40:24 1UosOk-0000ej-KG ** origsender@example.biz P=<> R=dnslookup_forwarder
T=remote_smtp_forwarder: SMTP error from remote mail server after RCPT TO:<origsender@example.biz>:
host mail.example.biz [80.76.197.72]: 554 5.7.1 <origsender@example.biz>: Relay access denied
2013-06-18 09:40:24 1UosOk-0000ej-KG Frozen (delivery error message)
Run Code Online (Sandbox Code Playgroud)
第一行表示反弹消息1UosOk-0000ej-KG是为响应消息1UosOf-0000bX-B而创建的(即<=行中的R =短语表示).现在搜索THAT消息ID以找出此消息实际来自何处.在我的情况下,它不是反弹消息,它是客户的自动回复:
# exigrep 1UosOf-0000bX-BV /var/log/exim/main.log
2013-06-18 09:40:18 1UosOf-0000bX-BV H=example.biz [62.189.29.157] Warning: SPF PASS (pass) to m.ivenue.com:
domain of example.biz designates 62.189.29.157 as permitted sender
2013-06-18 09:40:22 1UosOf-0000bX-BV <= origsender@example.biz H=example.biz [62.189.29.157] P=esmtp S=17624
2013-06-18 09:40:22 1UosOf-0000bX-BV => /netapp3/mail/maildirs/b/o/y/boyexample.com/sarah/Maildir/
(sarah@boyexample.com) <sarah@boyexample.com> P=<origsender@example.biz> R=virtual_user T=address_directory
2013-06-18 09:40:22 1UosOf-0000bX-BV => sarah <sarah@boyexample.com> P=<origsender@example.biz>
R=autoresponder_always T=autoresponder_always_t
2013-06-18 09:40:22 1UosOf-0000bX-BV Completed
Run Code Online (Sandbox Code Playgroud)
一旦您发现正在使用哪个进程通过您的系统发送这些消息,您就可以采取措施来防止它们,假设它们不是有效的消息.你采取什么步骤将在很大程度上取决于你找到了什么.
通常,您不希望尝试重新发送这些冻结的消息.但是,如果由于某些临时网络或配置错误导致邮件被冻结,并且您希望让exim重新发送它们,那么您需要生成冻结邮件列表并告诉Exim传递它们.最简单的方法是使用exiqgrep程序:
exiqgrep -z -i | xargs -n 1 exim -M
Run Code Online (Sandbox Code Playgroud)
Leo*_*nce 15
冻结的邮件在临时队列中没用.您可以删除所有这些以减少exim队列列表.
以下命令将删除所有冻结的邮件:
exim -bpr | grep frozen | awk {'print $3'} | xargs exim -Mrm
要么
exiqgrep -z -i | xargs exim -Mrm
如果要删除超过特定小时的冻结邮件,例如24小时:
exiqgrep -zi -o 86400 | xargs exim -Mrm
86400代表24小时秒.这可以相应地改变.
通过将配置选项ignore_bounce_errors_after
设置为合适的值,例如,可以通过exim自动清除冻结弹跳
ignore_bounce_errors_after = 12h
Run Code Online (Sandbox Code Playgroud)
将在12小时后自动删除这些退回错误.
归档时间: |
|
查看次数: |
33911 次 |
最近记录: |