![每个域的 Postfix SMTP 身份验证](https://linux22.com/image/624093/%E6%AF%8F%E4%B8%AA%E5%9F%9F%E7%9A%84%20Postfix%20SMTP%20%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81.png)
是否可以在 Postfix 上为不同的域配置不同的用户/密码凭据的 SMTP 身份验证?
因此,我有一个 MTA,可中继来自大约 20 个不同域的电子邮件。当向特定域(例如 example.com)发送电子邮件时,我的 MTA 必须进行身份验证。没问题,这解决了问题: http://postfix.state-of-mind.de/patrick.koetter/smtpauth/smtp_auth_mailservers.html
但是,我为每个发件人域设置了不同的帐户。因此,当 mydomain1.com 向 example.com 发送电子邮件时,它使用一个帐户。mydomain2.com -> example.com 则使用另一个帐户,等等。
这可以通过 Postfix 实现吗?
答案1
您应该阅读一些有关此选项的内容:smtp_sender_dependent_authentication,有了它,以及其他两个相关的 DB 映射,,sender_dependent_relayhost_maps
和smtp_sasl_password_maps
,您可以创建每个发件人的密码条目。
在sender_dependent_relayhost
映射中,您映射username@domain [smtp_host]
,而在中smtp_sasl_password maps
,您映射email user:password
或domain user:password
(无论它们是什么)。这些是经典的后缀查找表,它们可以位于 mysql、dbm、hash 等中。
通过结合 mysql 和一些重复,您完全可以做您想做的事情。
您可以制作一个包含 4 个字段的表email
,,,,,,然后让 postfix 查找电子邮件和 smtp_relay ,然后查找。这将必须填充每个必须中继的电子邮件地址、您通过中继的每个服务器以及用于身份验证的每个用户:密码组合。smtp_relay
user
password
sender_dependent_relay_maps
email user:password
smtp_sasl_password_maps