Postfix
後綴 MTA - 標頭欄位中的匹配字元串
我試圖通過過濾郵件標題中的某些欄位來阻止一些垃圾郵件發送者,但它不起作用。垃圾郵件發送者在標頭中添加隨機域,但“使用者”始終相同,例如:www-data@domain1.com、www-data@domain2等等。我不希望有人發送發件人名稱為“www-data”的合法郵件,所以如果所有郵件都被丟棄我沒問題。
我正在嘗試使用但不起作用的正則表達式是:
/^(From|Return-Path|Reply-To):.*www-data@.*/ DISCARD known spam sender in $1: header: $2
我還有其他規則也過濾其他方面,例如偽造我自己的域,這是有效的:
/^(From|Return-Path|Reply-To):.*\b(@mydomain\.com)\b/ DISCARD forged sender address in $1: header: $2
我可能做錯了什麼?謝謝!
www-data
是 Web 伺服器使用者的名稱,經常用於事務性電子郵件,例如 Wikipedia 通知,因此您應該考慮您可能會阻止合法郵件以及從受感染伺服器發送的郵件。無論如何,您通常不會在From
標題中看到它。它更有可能在信封發件人中,這可能是您的正則表達式不起作用的原因 - 它在錯誤的位置查找。要阻止信封發件人,請在smtpd_sender_restrictions
check_sender_access
中添加一個表並指定要拒絕的 localpart@。您不需要使用正則表達式,但您可以在必要時使用表類型。pcre:
在正則表達式中,您應該轉義
@
, 像\@
. 另請注意,在您的第一個範例中,沒有 pattern$2
,因為您只有一組括號。欲了解更多資訊man 5 postconf
,或查看SMTPD_ACCESS_README
。