使用中继域向 Postfix 添加自定义标头

使用中继域向 Postfix 添加自定义标头

我有一个 Postfix 设置,它只允许来自某些域的中继。我使用relay_domainsmain.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_accesspostfix。

smtpd_recipient_restriction = ... 
                      ... 
                      check_recipient_access pcre:/etc/postfix/addheader
                      ...

文件/etc/postfix/addheader包含如下内容

/.+@(.+)/  PREPEND X-Relay-Domain: $1

使用权表,PREPEND 操作将在您的电子邮件中添加标题。在本例中,此映射将添加收件人的域部分。

相关内容