在 Postfix 中使用不同的中继

在 Postfix 中使用不同的中继

在我们的应用程序中,我们发送不同类型的邮件。从广义上讲,我们可以将其概括为两类,

  1. 监控应用程序运行状况的邮件。
  2. 我们发送给最终用户的邮件。

有没有什么方法(设置一些标题/在后缀中配置一些参数),以便对于相同的发送方地址,我们可以使用不同的中继主机?

答案1

在 Postfix 中,你可以使用运输地图为不同的域指定不同的中继主机。在文件中/etc/postfix/main.cf,你需要包含一行:

transport_maps = hash:/etc/postfix/transport

传输图文件的语法如下:

# Syntax: .domain transport:relay_host
# Specifies specific domains for local delivery
mydomain1.com :
mydomain2.com :

# Specify domains that need to be relayed through 192.168.1.1
anotherdomain1.com relay:192.168.1.1
anotherdomain2.com relay:192.168.1.1

不要忘记运行postmap transport生成.db文件,然后重新加载/重新启动 postfix 进程。

答案2

传输图(在 Khaled 的回答中)可以根据域更改邮件的中继。

您还可以使用header_checksbody_checks根据电子邮件正文中找到的匹配标头和内容更改传输(并执行其他操作)。这些可以基于正则表达式或哈希。我下面的示例是基于正则表达式的。

/etc/postfix/main.cf

header_checks = regexp:/etc/postfix/header_checks

/etc/postfix/header_checks

/^Subject: Host [a-z0-9]* is down!/ FILTER relay:192.168.1.1
/^Subject: [^ ]* has posted a new blog entry./ FILTER relay:192.168.1.2
/^Message-ID: <[0-9a-z]*@dbserver.local>/ FILTER relay:192.168.1.1
/^Message-ID: <[0-9a-z]*@mydomain.com>/ FILTER relay:192.168.1.2

工作body_checks方式与 相同header_checks

如果您想要过滤某些独特的内容,您可以在应用中设置任意标题。

相关内容