Postfix 中继到多个服务器和多个用户

Postfix 中继到多个服务器和多个用户

我目前已配置了 postfix,以便所有用户都通过本地机器进行中继,但以下情况除外:一个用户通过 gmail 进行中继。为此,我添加了以下配置:

/etc/postfix/main.cf

# default options to allow relay via gmail
smtp_use_tls=yes
smtp_sasl_auth_enable = yes
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
smtp_sasl_security_options = noanonymous

# map the relayhosts according to user 
sender_dependent_relayhost_maps = hash:/etc/postfix/relayhost_maps

# keep a list of user and passwords
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

/etc/postfix/relayhost_maps

user-one@localhost   [smtp.gmail.com]:587

在 /etc/postfix/sasl_passwd 文件中

[smtp.gmail.com]:587  [email protected]:user-one-pass-at-google

我知道我可以使用 smtp_sasl_password_maps 将多个用户映射到多个密码,但这意味着所有中继都将由 gmail 完成,而我特别希望所有中继都由本地主机完成,但某些用户除外。

现在我想让 user-two@localhost (等) 通过 google 进行中继,并使用各自的密码。这可能吗?

答案1

设置参数smtp_sender_dependent_authentication是的. 然后您可以使用发件人地址作为 的查找键smtp_sasl_password_maps

参考:官方文档这一页

实际上,您需要做的只是将密钥更改为sasl_passwd基于用户。根据您的示例,只需将两个用户添加到文件relayhost_maps并更改以下文件:

在 /etc/postfix/sasl_passwd 文件中

user-one@localhost       [email protected]:user-one-pass-at-google
user-two@localhost       [email protected]:user-two-pass-at-google

相关内容