基于目标MXlogging的中继主机

我希望根据目标主机名设置Postfix来使用外部中继,即:

  • 如果目标主机名是* .outlook.com,请使用relay some_smtp.example.com
  • 如果有其他目标主机名,则使用本地中继

我所说的目标主机名是从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重新加载。

参照(一个或多个):

  • 有关VeriSign站点查找器的 Postfix补丁公告
  • 另一个有同样问题的人