Exim4智能主机中继

我正在运行Exim 4.71。 我要:

  1. 通过mail.A.com路由 A.com的所有电子邮件
  2. 通过mail.B.com路由来自 [BE] .com的所有电子邮件
  3. 直接发送所有其他邮件。

下面是我的configuration,不像我所希望的那样工作:

 domainlist a_domains = a.com
 domainlist b_domains = b.com:c.com:d.com:e.com

开始路由器

 smart_route_a:
  驱动程序=手动路由
  域= + a_domains
   transport = remote_smtp
   route_list = + a_domains mail.a.com
  不再

 smart_route_b:
  驱动程序=手动路由
  域= + b_domains
   transport = remote_smtp
   route_list = + b_domains mail.mollenhour.com
  不再

 dnslookup:
   driver = dnslookup
  域=!  + local_domains
   transport = remote_smtp
   ignore_target_hosts = 0.0.0.0:127.0.0.0/8
  不再

当我用PHP的mail( )或Zend_Mail_Transport_Smtp发送一封Zend_Mail_Transport_Smtp将From:和Return-Path设置为[email protected],则不使用smart_route_a路由器,而是使用dnslookup。 禁用dnslookup将不会发送邮件。

从日志看来,发送 [email protected]的电子邮件使用smart_route_a ,但使用smart_route_a发送从[email protected]发送到[email protected]的相同电子邮件。

如何通过mail.a.com传递来自 [email protected]的电子邮件?

使用条件像

 route_list = * "${if match{$header_from:}{\N.*\.a\.com$\N} {mail.a.com}}" 

域=仅检查目标域而不是源域。