
我有一個 Postfix 設置,只允許來自某些網域的中繼。我使用relay_domains
main.cf 中的標誌來完成此操作,它會查詢 mysql 以查找允許的網域清單。
relay_domains = mysql:/etc/postfix/mysql_domains.cf
我想新增一條header_checks
指令來根據 mysql 檢查的結果插入自訂標頭,relay_domains
該標頭將顯示透過 Postfix 中繼的網域。原因是如果允許的網域是 .domain.com 並且收件者電子郵件地址是[電子郵件受保護],我想知道 Postfix 在查找中解析為哪個 .domain.com。
我已經讓 header_checks 工作了:
/^From:/i PREPEND X-Relay-Domain: xxx
但我不確定如何捕獲網域查詢的結果並將其用於 header_checks PREPEND。我還可以執行另一個 mysql 查找,header_checks
但如果可能的話我想避免這種情況。
答案1
也許,你可以使用check_recipient_access
postfix。
smtpd_recipient_restriction = ...
...
check_recipient_access pcre:/etc/postfix/addheader
...
文件/etc/postfix/addheader
內容如下
/.+@(.+)/ PREPEND X-Relay-Domain: $1
在使用權表中,PREPEND 操作將在您的電子郵件中新增標頭。在這種情況下,此對應將新增收件者的網域部分。