如果消息是从特定发件人发送的,我该如何配置 sendmail 以发送到不同的下游智能主机目的地?

如果消息是从特定发件人发送的,我该如何配置 sendmail 以发送到不同的下游智能主机目的地?

我有一台 SendMail 服务器。我希望将发往“特殊”域的流量重定向到其他位置。我通过将某些域视为“本地”并使用一些简单的路由逻辑来实现此目的:

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)并且信封发件人是不是发自[电子邮件保护],发送至 1.1.1.1

2)否则发送至 2.2.2.2

有没有简单的方法可以做到这一点(不需要过滤机)?

答案1

您可以组合两个 sendmail.cf 配方:

1) MailertableRuleSets - 它允许选择 sendmail.cf 自定义规则集,通过 mailertable 进行电子邮件路由(按收件人域进行自定义路由)
警告:它需要对用于生成 sendmail.cf 的文件之一进行几行修补

anfi 撰写的“Mailertable 规则集 (sendmail)”(2004 年)

2)SmartTable - 它显示如何根据信封发件人地址进行路由($f

anfi 的“智能表 (sendmail)”(1999年,2002年)


警告:$fsendmail在发送退回邮件时保留原始发件人地址
(AFAIR 在“立即”传递尝试中)。

相关内容