postfix 的 check_recipient_access 對應是否允許正規表示式?

postfix 的 check_recipient_access 對應是否允許正規表示式?

我希望更新我的 postfix 配置,以便它限制可以發送電子郵件的網域。我正在考慮基於此解決方案將 smtpd_recipient_restrictions 與 check_recipient_access 一起使用:https://serverfault.com/a/412805 這允許正則表達式嗎?我想說,只發送電子郵件到 *@mydomain.com 並阻止其他人。像這樣的事情:

smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/recipients

收件人將是:

*@mydomain.com PERMIT,
* REJECT,

這可行嗎?

編輯:我知道這對 Transportmap 是可能的,但我們已經使用 check_recipient_access 來阻止一些 id,如果可能的話,我不想引入其他配置。

答案1

是的,請參閱人 5 正規表示式_表

格式會有所不同,您需要拼出完整的正規表示式:

/.*@example\.com/ OK
/.*/ REJECT

甚至更短,

!/.*@example\.com/ REJECT

(預設操作將是“未找到”,因此它將繼續執行以下smtpd_recipient_restrictions項目,並且將在預設情況下允許)。

將其保存到文件中並像這樣掛鉤:

smtpd_recipient_restrictions =
...
    check_recipient_access regexp:/etc/postfix/my_regexp_recipients.cf,
...

從版本 3.7 開始,Postfix 允許內聯指定正規表示式。你的桌子很短,所以你最終可能會得到

smtpd_recipient_restrictions =
...
    check_recipient_access regexp:{ { !/.*@example\.com/ REJECT } },
...

並且沒有額外的文件。


當心。你需要有其他限制項目。*@example.com如果您不在此參數或其他smtpd_*_restrictions參數(reject_sender_login_mismatch等等)中對其採取措施,只需像這樣設定它就可以使您的伺服器成為 的開放中繼。

相關內容