Postfix sasl 身份验证仅适用于 fallback_relay

Postfix sasl 身份验证仅适用于 fallback_relay

我有一台服务器,它会尝试直接将邮件发送到目标 MX 服务器。但是其中一些服务器会拒绝这些邮件,因为 MTA 的声誉不佳(他们就是这么说的)。

我尽一切努力来提高声誉,并且别无选择。

只有几个服务器拒绝了我们的邮件。所以我想使用 Postmark 来发送此类邮件。

但是我需要配置 Postfix 以仅使用 sasl 身份验证fallback_relay而不是直接向 MX 服务器发送邮件。

某些 MX 服务器由于此 sasl 身份验证而出现错误(如 hotmail)。Google 服务器可以毫无问题地接受。

#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

答案1

这是使用“静态”地图时的预期行为。按照手册http://www.postfix.org/postconf.5.html#smtp_sasl_password_maps您至少需要为 配置一个哈希图smtp_sasl_password_maps

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

smtp.postmarkapp.com   user:password

这仅对指定主机使用 sasl。

答案2

我遇到了同样的问题。为了扩展 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 文件,您需要创建一个包含以下内容的文本文件:

smtp.sendgrid.net = username:password

请注意这里没有“static”前缀。从这里,你只需运行(以 root 身份):

postmap /etc/postfix/smtp_sasl_password_maps
service postfix restart

这里的关键是,如果 SASL 密码映射中没有主机名匹配,则继续无需认证

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

相关内容