我有一个 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 操作将在您的电子邮件中添加标题。在本例中,此映射将添加收件人的域部分。