Exim4:在多个域上配置 catchall 以将邮件转发到外部地址

Exim4:在多个域上配置 catchall 以将邮件转发到外部地址

更新:感谢您对此的回复,但我将放弃 exim 并尝试 Postfix。


我的问题与这个。我想配置 exim4(在 ubuntu 10.04 上)以将域上的所有电子邮件转发/重定向到外部地址。我的服务器托管多个域。这是一个非常简单的设置,但我很难让它工作。

例子:

*@domain-a.com>[email protected]

*@domain-b.com>[email protected]

*@domain-c.com>[email protected]

我尝试添加以下内容/etc/exim4/exim4.conf.template但导演不匹配:

domaina_director:
  driver = redirect
  domains = dsearch;/etc/exim4/fwd_domains
  data = ${lookup{$local_part}lsearch{/etc/exim4/fwd_domains/$domain}}
  no_more

我已经创建了目录/etc/exim4/fwd_domains,并且在其中创建了文件domain-a.com

# cat domain-a.com 
*: [email protected]

更新:我不确信这个语法是否正确。更重要的是,我的导演似乎在到达这一点之前没有被选中。

运行update-exim4.conf并重新启动 exim4。

发送测试电子邮件:

# mail [email protected]
Subject: jdhfdjks
dsfhjdshf
.
Cc: 

这出现在/var/log/exim4/mainlog

2010-07-07 22:21:51 1OWd03-0002Zv-Kx <= root@primarydomain U=root P=local S=332
2010-07-07 22:21:51 1OWd03-0002Zv-Kx ** [email protected]: Unrouteable address
2010-07-07 22:21:51 1OWd03-0002Zx-MB <= <> R=1OWd03-0002Zv-Kx U=Debian-exim P=local S=1111
2010-07-07 22:21:51 1OWd03-0002Zv-Kx Completed
2010-07-07 22:21:51 1OWd03-0002Zx-MB => /var/mail/mail <root@primarydomain> R=mail4root T=address_file
2010-07-07 22:21:51 1OWd03-0002Zx-MB Completed

我的主管没有被解雇,电子邮件最终进入了 root 的邮箱。有什么想法吗?

答案1

使用通配符搜索“lsearch*”而不是“lsearch”。这将匹配通配符。

域名别名:
  驱动程序 = 重定向
  域 = dsearch;/etc/exim4/fwd_domains
  数据 = ${lookup{$local_part}lsearch*{/etc/exim4/fwd_domains/$domain}}
  不再

或者,您可以将别名放入 /etc/aliases 中并使用这样的路由器。您可以根据配置适当地更改域选项。上面的 dseach 是合适的。

域名别名:
  驱动程序 = 重定向
  域 = !+本地域:+中继到域
  数据 = ${lookup{$local_part@domain}lsearch*{/etc/aliases}}
  不再

这需要类似这样的别名:

*@域名-a.com:[电子邮件保护]
*@域名-b.com:[电子邮件保护]
*@域名-c.com:[电子邮件保护]

答案2

尝试进行一些更具侵入性的调试:

exim -bv -d+verify [email protected]
exim -bt -d+route [email protected]

您的配置看起来正常(甚至是教科书式的),但需要有关故障的更多详细信息。

答案3

您的主管需要位于本地交付路由器之上。

答案4

这可能很明显,您已经检查过了,但您永远不知道。

您是否使用过拆分配置方案?

在这种情况下,您应该忽略 exim4.conf.template 而改用 /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs。

相关内容