在后缀中使用不同的中继

在我们的应用程序中,我们发送不同types的邮件。 从广泛的angular度来看,我们可以把它推广到两个范畴,

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

有什么办法(在postfix中设置一些头文件/configuration一些参数),对于同一个发件人地址,我们可以使用不同的中继主机?

在后缀中,您可以使用transport_maps为不同的域指定不同的中继主机。 在文件/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进程。

交通地图(在Khaled的答案中)可以根据域来改变邮件的中继。

您还可以使用header_checks和body_checks根据电子邮件正文中find的匹配标题和内容来更改传输(并执行其他操作)。 这些可以是正则expression式或基于哈希。 我下面的例子是基于正则expression式。

/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相同。

如果你想要一些独特的filter,你可以在你的应用程序中设置任意的标题。