仅适用于fallback_relay的Postfix sasl auth

我有一个服务器,将尝试直接发送邮件到目标MX服务器。 但是他们中的一些人由于MTA的声誉不好而拒绝邮件(这就是他们所说的)。

我尽一切努力来提高声誉,没有select余地。

只有几个服务器拒绝我们的邮件。 所以我想用邮戳寄这样的邮件。

但是我需要将Postfixconfiguration为仅对fallback_relay使用sasl auth,而不是将其直接发送到MX服务器。

一些MX服务器由于这种身份validation(如hotmail)而出错。 谷歌服务器正在接受没有问题。

 #my configuration smtp_sasl_auth_enable = yes smtp_sasl_password_maps = static:key:key smtp_sasl_security_options = noanonymous fallback_relay = [smtp.postmarkapp.com]:25 

当您使用“静态”地图时,这是预期的行为。 遵循手册http://www.postfix.org/postconf.5.html#smtp_sasl_password_maps,您需要至less为smtp_sasl_password_mapsconfiguration哈希映射。

哈希映射文件应该包含一行

 smtp.postmarkapp.com user:password 

这仅对指定的主机使用sasl。

我遇到了同样的问题。 只是为了扩大mailq的答案,并给予更多的细节,这正是我所做的解决我的问题。

 # old main.cf smtp_sasl_password_maps = static:username:password # new main.cf smtp_sasl_password_maps = hash:/etc/postfix/smtp_sasl_password_maps 

要生成smtp_sasl_password_maps.db文件,您需要使用以下命令创build一个文本文件:

 smtp.sendgrid.net = username:password 

请注意这里缺less“静态”前缀。 从那里,你只需运行(作为根):

 postmap /etc/postfix/smtp_sasl_password_maps service postfix restart 

这里的关键是如果在SASL密码映射中没有主机名匹配,则它在没有authentication的情况下进行。

如果找不到用户名:密码条目,则Postfix SMTP客户端不会尝试向远程主机进行身份validation。