我有一个SendMail服务器。 我希望进入“特殊”域的stream量被redirect到不同的位置。 我基本上考虑了一些“本地”域名,并使用了一些简单的路由逻辑:
1)如果发送到特殊的域名(如DOMAINA.com或DOMAINB.com)发送到1.1.1.1。
dnl # define mail_hub to special route define(`MAIL_HUB',`relay:[1.1.1.1]')dnl dnl # define list of 'local' domains that will be forwarded to the mail hub define(`confCW_FILE',`/etc/mail-tls/special_domains')dnl
2)否则发送到2.2.2.2
define(`SMART_HOST',`relay:[2.2.2.2]')dnl
这似乎很好。 但现在我有一个要求使逻辑复杂化:
1)如果发送到特定的域名(例如DOMAINA.com或DOMAINB.com),并且信封发件人没有从[email protected]发送,则发送到1.1.1.1
2)否则发送到2.2.2.2
有没有一个简单的方法来做到这一点(不需要一个milter)?
你可以结合两个sendmail.cf食谱:
1)MailertableRuleSets – 它允许selectsendmail.cf自定义规则集通过mailertable进行电子邮件路由(通过收件人域进行自定义路由)
警告:它需要几行补丁来生成sendmail.cf文件
2004年的“Mailertable规则集(sendmail)”
2)SmartTable – 它显示了如何根据信封发件人地址( $f )
“智能表(sendmail)”by anfi (1999,2002)
警告:发送退回邮件时,sendmail将原始发件人地址保存在
$f
(AFAIR在“一次”交付尝试)。