我有一个非常简单的Eximconfiguration,只是将所有邮件转发到一组目标地址。 当立即传送到地址失败时,消息将被添加到队列(然后由重试规则处理)。 我想改变这个,所以如果立即交付失败,消息是:blackhole:d。 (没关系,如果反弹生成,而我只是redirect反弹到:黑洞:)。
这需要发生临时失败(即4xx)以及永久(即5xx)。
我明白,这意味着如果不能立即完成交付,这个信息将永久和不可挽回地丢失。 在这个特定的背景下,这不是一个问题。
读过这个,听起来很可疑,“我怎样才能改进我的垃圾邮件的Exim服务器”。 那真的不是这样,如果你能想出一个办法,我可以certificate这一点,我很乐意这样做!
Exim具有广泛的configuration来设置重试次数。 在你的exim.conf中,底部会有一个重试部分。 重试configuration有三个字段,电子邮件地址,导致失败的错误代码和一个定时模式列表。 这些被定义为一组三个数字:字母行为代码,应用此规则的时间长度和重试间隔。 例如:
F,2h,15m
可以理解为“2小时,每15分钟一次固定内部试验”,
你可以尝试设置一个空的重试:
begin retry * *
exim可能会因此而感到不安。 相反,您可以使用一分钟的重试:
begin retry * * F,1m,1m
这不是你所要求的,但是非常接近。
还可以select更改特定电子邮件地址和不同的返回码。
将重试设置为荒谬的长时间,cron脚本从队列中的exim -bpu拉长消息ID大于长度x,然后使用exim -Mrm <msgid>
您也可以使用mua_wrapper = true作为非排队守护进程来运行exim。 看第48节“使用Exim作为非排队客户端”,它可以做你所需要的。
当传递失败时,将错误消息写入到标准错误stream(以及Exim日志)中,并且Exim以转码值1退出到调用方。该消息从Exim的假脱机文件中清除。 不会生成反弹消息。
没有重试数据被维护,并且任何重试规则被忽略。