Exim
使用 exim systemfilter 刪除特定的傳入和傳出電子郵件而不會退回消息
我想使用 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 郵件系統可靠性的信心。因此,只有在高度確信郵件具有嚴重欺詐性或其他不適當的情況下,才應考慮靜默丟棄郵件。”