我希望一个发送地址使用不同的Gmail帐户,而其他所有帐户都使用默认的Gmail帐户。
正如大多数在线教程所说这应该有效,但是postfix使用所有电子邮件的默认smtp用户名和密码......
是否有任何可以提供帮助的postfix文档? 依赖发件人的加密似乎也不是一种选择......我错了吗?
### main.cf ###
relayhost = smtp.gmail.com:587
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
sender_dependent_relayhost_maps=/etc/postfix/senderDependentRelayHostMap
smtp_use_tls = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_tls_note_starttls_offer = yes
smtp_tls_...
### senderDependentRelayHostMap ###
test@gmail.com smtp.gmail.com:587
### sasl_password ###
#per sender email stmp username and password
test@gmail.com test@gmail.com:testPass
#default route
smtp.gmail.com:587 default@site.com:defaultPass
答案 0 :(得分:1)
您必须在Postfix中配置Sender-Dependent SASL authentication
。请将以下行添加到main.cf
#/etc/postfix/main.cf
#...
smtp_sender_dependent_authentication = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = regexp:/etc/postfix/sasl_passwd
relayhost = smtp.gmail.com:587
smtp_tls_security_level = may
smtp_sasl_security_options =
#...
并使用以下内容创建/etc/postfix/sasl_passwd
。
/^test@gmail.com$/ test@gmail.com:testPass
/^/ default@site.com:defaultPass
重新加载后缀。
如果您使用以下命令从someone@yahoo.com
向test@gmail.com
发送邮件
echo "Hi Everyone"|mail -s "Test email" -r "test@gmail.com" someone@yahoo.com
然后您的postfix服务器将使用test@gmail.com
中配置的/etc/postfix/sasl_passwd
密码进行身份验证。来自所有其他发件人的邮件将使用default@site.com:defaultPass
参考:Postfix docs
希望有所帮助。