我希望更新我的 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
等等)中對其採取措施,只需像這樣設定它就可以使您的伺服器成為 的開放中繼。