Exim

使用 exim systemfilter 刪除特定的傳入和傳出電子郵件而不會退回消息

  • September 21, 2015

我想使用 systemfilter 來忽略來自和發往具有以下規則的特定域的電子郵件:

如果 (” $ message_body:, $ h_to:, $ h_reply_to:, $ sender_address”包含“example.com”)然後失敗 endif

但是這種過濾的問題在於它會導致發送失敗,這是我們不希望的。

我們不希望在全球範圍內禁用退回郵件,因此是否可以簡單地丟棄我們的規則檢測到的任何郵件,即 FAIL 和傳遞失敗?

請給我一個建議。親切的問候

最準確的答案是:如果(“ $ message_body:, $ h_to:, $ h_reply_to:, $ sender_address" 包含 “example.com”) 然後保存 /dev/null 完成 endif

或者

如果 (” $ message_body:, $ h_to:, $ h_reply_to:, $ sender_address" 包含 “example.com”) 然後看到完成 endif

您可以將其“保存”到 /dev/null。此後不會進行任何額外處理,因為 Exim 將其視為重大傳遞。

if ("$message_body:, $h_to:, $h_reply_to:, $sender_address" contains "example.com") then save /dev/null endif

該手冊包含更多資訊

可能也值得提出RFC 5321

“正如下文第 7.8 節和第 7.9 節所討論的,在實踐中允許在不通知發件人的情況下丟棄郵件。但是,這是極其危險的,並且違反了長期以來的傳統和社區對郵件要麼投遞要麼退回的期望。如果靜默投遞郵件“如果被濫用,它很容易破壞人們對 Internet 郵件系統可靠性的信心。因此,只有在高度確信郵件具有嚴重欺詐性或其他不適當的情況下,才應考慮靜默丟棄郵件。”

引用自:https://serverfault.com/questions/722114