有条件地使用中继(智能主机)的接收域与后缀中的header_checks匹配

在configuration为通常直接发送邮件(internet-site)的postfix邮件服务器上,我想对一些收件人域(在这个例子中用gmail.com保持简单)实现一个条件邮件头检查,让postfix使用一个智能主机。 但是,而不是使用smarthost smtp.google.com进行身份validation,而是直接发送邮件到:* @ gmail *(如果我故意设置了错误的密码,则不会抱怨)。

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

relay_passwd:

smtp.google.com [email protected]:mypassword 

header_checks:

 ^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 relay_passwd # postmap header_checks 

它会发出警告:

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

但我想这不是问题,是吗? 无论如何,我一定在做错事。

我发现下面的线程,但他们不是我想要的:

在后缀中使用不同的中继

在postfix的条件接力

基于系统用户的不同postfix relayhost?

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

这应该这样做,你的继电器configuration看起来不错。

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

另外,您不需要postmap正则expression式文件。

来源: Marcelog