Adr*_*age 9 email postfix smtp-headers
我已经成功地将 Postfix 设置为使用 SASL 和sender_dependent_relayhost_maps
MySQL 表通过 Mandrill 中继电子邮件,以便不同的发件人使用他们自己的 Mandrill 用户名和 API 密钥连接到 Mandrill。
到目前为止一切顺利,但我有三个用户都使用电子邮件服务提供商,并且所有三个用户的邮件信封中的发件人都设置为“mailer@infusionmail.com”,并且唯一包含实际用户电子邮件的地方地址在From: email header 中。
我对使用From: 电子邮件标头的安全性(或缺乏安全性)感到满意,因为我只转发发送到严格控制的特定电子邮件地址的邮件,但我非常感谢您提供有关如何操作的建议最好根据From: header的值指定中继主机。有没有办法将包络值设置为与 From 字段相同?或者任何其他方式来做到这一点?
基于 postfix mailing-list 上的这个线程:通过 sendmail(1) 引入的所有邮件的不同传输,看起来你的情况是可能的。不幸的是,您不能只依赖两个表sender_dependent_relayhost_maps
和smtp_sasl_password_maps
. 您需要修改master.cf
. 这个想法是header_checks
用来将电子邮件路由到不同的传输。然后在每个传输中,我们定义使用独立凭证和中继主机的 smtp 客户端。
首先在main.cf和它的pcre表中定义header_checks
#main.cf
header_checks = pcre:/etc/postfix/header_dependent_relay
#/etc/postfix/header_dependent_relay
/^From:.*specialsender1\@example\.com/ smtp1:[host1.example.com]
/^From:.*specialsender2\@example\.com/ smtp2:[host2.example.com]
/^From:.*specialsender3\@example\.com/ smtp3:[host3.example.com]
Run Code Online (Sandbox Code Playgroud)
好的,现在我们在 master.cf 中设置smtp1
, smtp2
,smtp3
传输
#master.cf
smtp1 unix - - - - 10 smtp
-o smtp_sasl_password_maps=hash:/etc/postfix/smtp1.relay
smtp2 unix - - - - 10 smtp
-o smtp_sasl_password_maps=hash:/etc/postfix/smtp2.relay
smtp3 unix - - - - 10 smtp
-o smtp_sasl_password_maps=hash:/etc/postfix/smtp3.relay
Run Code Online (Sandbox Code Playgroud)
文件smtpX.relay
具有相似的内容,例如
[hostX.example.com] userX:passwordX
Run Code Online (Sandbox Code Playgroud)
免责声明:
smtp_sasl_password_maps
仅作为示例。您可以将其替换为 mysql 表。 归档时间: |
|
查看次数: |
4665 次 |
最近记录: |