针对 postfix 中 header_checks 匹配的收件人域有条件地使用中继(smarthost)

针对 postfix 中 header_checks 匹配的收件人域有条件地使用中继(smarthost)

在配置为通常直接发送邮件(互联网站点)的 Postfix 邮件服务器上,我想对某些收件人域(在此示例中,为了简单起见,仅使用 gmail.com)实施条件标头检查,以让 Postfix 使用智能主机。但是,它没有使用智能主机 smtp.google.com 进行身份验证,而是直接发送收件人为 *@gmail* 的邮件(如果我故意设置了错误的密码,它不会抱怨)。

我在 /etc/postfix/ 中创建了以下文件:

中继密码:

smtp.google.com [email protected]:mypassword

标头检查:

^To: <*@gmail*>/ FILTER relay:smtp.gmail.com:25

并在 main.cf 中引用它们,并附加选项:

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/relay_passwd
header_checks = regexp:/etc/postfix/header_checks

现在我对文件进行了 postmap(并且从那时起多次重新启动了 postfix):

# postmap relay_passwd
# postmap header_checks

并发出警告:

postmap: warning: header_checks, line 1: record is in "key: value" format; is this an alias file?

但我想这不是问题,对吧?无论如何,我肯定做错了什么。

我找到了以下线索,但它们并不完全是我想要的:

在 Postfix 中使用不同的中继

后缀中的条件中继

根据系统用户不同的 Postfix 中继主机?

main.cf 中的顺序是否相关?header_checks 中的正则表达式是否正确?

答案1

这应该可以做到,你的中继配置看起来不错。

/^To: (.*?)@gmail.com$/ FILTER smtp:smtp.gmail.com

此外,您不需要对正则表达式文件进行后期映射。

来源:马塞洛格

相关内容