首先让我说,我不是一个IT人,但是我在我的办公室里被压在里面。
我办公室的某个人向aol.com的某个人发送了一个86MB的电子邮件附件,而aol.com可能因为它太大而拒绝该电子邮件。 当我查看日志时,我会看到“每隔10-20分钟发送一次数据块都会closures连接”,我猜是因为exim4试图不断重新发送数据。 这已经发生了3天,你可以猜测它已经使用了大量的带宽。
为什么在这么多的失败尝试之后,exim4不再发送这封电子邮件?
我需要更改哪个configuration选项来设置放弃这种失败的失败尝试次数?
根本问题是您已经接受了中继的消息,并且接收方服务器有问题接受它。 通常情况下,收件人服务器会说“550邮件大小太大”或类似的东西,而exim不会再试一次,而是转过来试着通知发件人他的86-MB邮件有问题,发送给他一个退信消息。
在这里,没有发生,处理这个信息时有一个不明确的问题,可能是因为它太大了。 通常情况下,接收服务器将使用ESMTP协议,允许在实际通过networking之前拒绝超过一定大小的消息,但AOL的服务器似乎不支持,所以他们试图接受它并由于某种原因失败,AOL服务器pipe理员可能会或可能不了解。
由于Exim不知道如何处理这个不明确的问题,它会一直试图发送消息五天(默认configuration)。 在这之前,你有两个select来阻止这个讨厌的事情:使用exim -Mg $messageid来发送一个反弹给发送者,或者使用exim -Mrm $messageid ,它将简单地从你的队列中删除消息。 我更喜欢第一个,除了错误消息似乎读取“pipe理员取消”,而我更喜欢“closures连接响应发送数据块”加可能是“pipe理员缩短的默认超时”。
为了避免这种情况再次发生,您应该在您的服务器上定义一个大小限制,这样您就不会接受那些收件人可能拒绝的邮件。 该参数称为message_size_limit,可能已经存在于您的configuration中。 使用exim非常完整的configuration可能性,如果你愿意的话,你可以定义一个只限邮件给AOL的限制。 在一般情况下,通常是10或20 MB。
首先为给定的错误。 由于这种types的smtp到smtp故障可能发生,由于一些networking连接问题
大多数情况下,在收件人电子邮件服务器处于停滞状态时,可能会发生此故障,并且处理邮件的附件大小不可接受。 之后,收件人系统将停止接受新的SMTP数据,并在预定的时间后,SMTP连接超时。
为了防止它,你需要调整默认的retry-rules 。
- 默认重试规则
configuration文件的重试部分包含影响第一次尝试时无法完成的Exim重试次数的规则。 它是由行介绍的
exim默认重试规则如下所示:
开始重试
在默认configuration中,只有一个规则适用于所有错误:
- 男,2H,15M; G,16小时,1小时,1.5; 楼4D,6H
这导致任何暂时失败的地址每15分钟重试2小时,然后以1小时为间隔增加1.5倍,直到16小时过去,然后每6小时过去4天。 如果一个地址在临时失败4天后没有交付,它将被退回。
如果重试部分从configuration中删除,或者是空的(即如果没有定义重试规则),Exim将不会重新发送。 这会将临时错误转化为永久错误。
您可以相应地调整值。 以下是官方参考资料: http : //www.exim.org/exim-html-current/doc/html/spec_html/ch-the_default_configuration_file.html#SECID57
这也是一个很好的解释。