在我们的应用程序中,我们发送不同types的邮件。 从广泛的angular度来看,我们可以把它推广到两个范畴,
有什么办法(在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,你可以在你的应用程序中设置任意的标题。