
我使用 Amavis 和 Spamassassin 等來運行 Postfix 伺服器。 Postfix 接收來自外界的郵件並將其傳遞給 Amavis。 Amavis 讓 Spamassassin 對郵件進行評級,然後在必要時將其標記為垃圾郵件。然後Postfix依靠每個使用者的procmailrcs來按照他們的意願處理郵件。我相信這是正確的方法,因為我相信每個用戶都應該有能力選擇如何處理他們的垃圾郵件。不幸的是,我們的虛擬別名清單中也有一些具有外域的使用者。因為這些位址在我們的伺服器上沒有使用者帳戶,所以轉發給它們的垃圾郵件永遠不會透過 procmailrc,我們最終會將已標記為垃圾郵件的垃圾郵件轉發到其他伺服器。有沒有辦法阻止已標記為垃圾郵件的外發郵件?或者有其他方法可以解決這個問題嗎?
編輯:我只想刪除既是垃圾郵件又被轉發到其他伺服器的郵件。我不想刪除所有標記為垃圾郵件的郵件。有沒有辦法區分兩者呢?
答案1
您可以刪除標頭中帶有特定標籤的電子郵件。
看Postfix 標頭檢查手冊頁了解詳情。
例子:
在“/etc/postfix/main.cf”中,新增
header_checks = 正規表示式:/etc/postfix/header_checks
在「/etc/postfix/header_checks」中,有
/^(主題:\[垃圾郵件\])(.+)$/ 丟棄
上述指令將丟棄所有主題以「[SPAM]」開頭的電子郵件。
編輯:我只想刪除既是垃圾郵件又被轉發到其他伺服器的郵件。我不想刪除所有標記為垃圾郵件的郵件。有沒有辦法區分兩者呢?
這可以透過在 Postfix 中執行兩個實例來完成。第一個實例會將電子郵件轉發到第二個實例(而不是遠端電子郵件伺服器)。透過指定本地傳輸也可以實現同樣的目的。
第二個實例將具有上述 header_checks。這樣,只有發送到遠端伺服器的電子郵件的垃圾郵件才會被刪除。
一些參考: