我希望根据目标主机名设置Postfix来使用外部中继,即:
我所说的目标主机名是从MXlogging中获得的主机名。 如果收件人域具有MXloggingmicrosoft-com.mail.protection.outlook.com ,则使用不同的中继
我知道可以根据发件人地址指定一个中继(使用sender_dependent_relayhost_maps ),但在我的情况下是不切实际的。
目标是使用一个不同的中继器来挑剔的目标主机:也许Mandrill,或另一个Postfix安装。
您可以设置一个传输地图来selectselect@ outlook.com作为目标地址的邮件,并通过some_smtp.example.com中继它们,如下所示。
将下面的条目添加到/ etc / postfix / transport
outlook.com smtp:[some_smtp.example.com]
将下面的条目添加到/etc/postfix/main.cf
transport_maps = hash:/etc/postfix/transport
在以下命令之后重新启动postfix
sudo postmap /etc/postfix/transport
阿鲁尔的答案是完美的基于收件人域的传输。 但是,您引用MXlogging主机名而不是收件人域时,答案是不适用的。
一个解决scheme是使用check_recipient_mx_access 。 从官方文档片段
check_recipient_mx_access types:表
在RCPT TO域的MX主机上search指定的access(5)数据库 ,并执行相应的操作。 注意:由于安全原因,“OK”的结果是不允许的。 相反,使用DUNNO为了从黑名单中排除特定的主机。 Postfix 2.1和更高版本提供此function。
对于你的情况,只需将check_recipient_mx_access hash:/etc/postfix/finickydestination放在适当的地方smtpd_*_restriction 。 在该文件中放置主机名
# /etc/postfix/finickydestination .outlook.com smtp:[some_smtp.example.com]
不要忘记postmap文件并执行postfix重新加载。
参照(一个或多个):