postfix:为特定域的任何子域自定义中继主机?

postfix:为特定域的任何子域自定义中继主机?

为具有特定域和子域的“发件人”电子邮件地址添加不同的中继的正确方法是什么?或者换句话说,我做错了什么?如何更改 postfix 配置以使其正常工作?

这是一个内部中继 - 未连接到互联网。目标是:

  1. 使用“发件人”地址发送电子邮件*@domainB.com*@*.domainB.com并发送到专用于该域的特殊中继 ( smtp.domainB.com),同时:
  2. 将其他所有内容发送至默认中继。

PS 这是普通的 CentOS 7.7。Postfix 2.10.1。这/etc/postfix/relay_maps仅适用于域,但不适用于子域:

domainB.com      [smtp.domainB.com]:25
.domainB.com     [smtp.domainB.com]:25

(...是的,我在更新文件后运行了以下命令:

sudo postmap /etc/postfix/relay_maps
sudo systemctl restart postfix

PPS 此外,还添加了以下行/etc/postfix/main.cf

sender_dependent_relayhost_maps = hash:/etc/postfix/relay_maps

答案1

您可以选择sender_dependent_relayhost_maps,此选项自 Postfix 2.3 起可用。

因此该选项在 CENTOS 7 上可用

root@test-cs-7 ~]# rpm -qa postfix
postfix-2.10.1-9.el7.x86_64
[root@test-cs-7 ~]# postconf  | grep ^sender_dependent_relayhost_maps
sender_dependent_relayhost_maps =

一个非常简单的例子:

在 /etc/postfix/main.cf 末尾添加此部分

sender_dependent_relayhost_maps = pcre:/etc/postfix/sender_dependent_relayhost

创建文件/etc/postfix/sender_dependent_relayhost内容如下:

/^boss@example\.com/    [192.168.8.2]
/^boss@example\.net/    [192.168.8.1]
/^.*@.*\.example\.com/  [192.168.8.3]
/^.*@.*\.example\.net/  [192.168.8.4]
/^.*@example\.net/  [192.168.8.2]
/^.*@example\.com/  [192.168.8.1]
/^.*@example\.net/  [192.168.8.2]

关于选项:

关于价格表:

相关内容