postfix发送者依赖的relayhost

时间:2014-11-25 22:55:57

标签: postfix-mta

我希望一个发送地址使用不同的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

1 个答案:

答案 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.comtest@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

希望有所帮助。