我在 CentOS 5.4 上安装了 Postfix 和 MailScanner,作为 Exchange 2007 的智能主机。当邮件被隔离后,我稍后会释放它(http://wiki.mailscanner.info/doku.php?id=documentation:configuration:mta:postfix:how_to:release_quarantined_mail),它会被投递到交易箱,但不会出现在用户的邮箱中。
Exchange 邮件跟踪日志显示该邮件被标记为 DUPLICATEDELIVER 并因此被丢弃。
我该如何解决这种情况?也许可以在 Postfix 框中以某种方式更改消息 ID,或者以其他方式?
谢谢。
答案1
Exchange 根据两个因素(消息 ID 和客户端发送时间)进行重复检测。我假设您在此处的隔离意味着可疑消息最初发送给用户时不带附件,然后在清除后随附件一起发送。
在这种情况下,客户端发送时间和消息 ID 相同或两者皆是消息,因此会出现重复的投递,所以您需要更改消息 ID 或客户端发送时间来阻止这种情况发生。
您还可以禁用 Exchange 重复传递检测,或减少 Exchange 保存用于检查重复项的邮件详细信息日志的时间,但这可能会增加您收到的实际重复邮件数量。
答案2
在 MailScanner 端,您可以将“Message-ID:”添加到 MailScanner.conf 文件的“删除这些标题”部分。conf 文件实际上声明了以下内容:
如果您在从隔离区释放垃圾邮件并将其发送到 Exchange 服务器时遇到重复的消息 ID 标头的问题,请添加消息 ID。