使用Exim路由器和传输转发

我写了2个路由器来照顾我的一个邮件服务器的转发

virtual_aliases_nostar: driver = redirect allow_defer allow_fail require_files = "+/var/auth/valiases/$domain" data = ${lookup{$local_part@$domain}lsearch{/var/auth/valiases/$domain}} file_transport = address_file group = mail pipe_transport = virtual_address_pipe retry_use_local_part unseen virtual_aliases: driver = redirect allow_defer allow_fail require_files = "+/var/auth/valiases/$domain" data = ${lookup{*}lsearch{/var/auth/valiases/$domain}} file_transport = address_file group = mail pipe_transport = virtual_address_pipe unseen 

哪个呼叫这个运输:

 virtual_address_pipe: driver = pipe group = some_user return_output user = some_user 

如果有像下面那样的valiases / somedomain.com文件,它会parsing第一封电子邮件并转发它,但会在那里停止。

 [email protected]: [email protected] [email protected]: [email protected] [email protected]: [email protected] [email protected]: [email protected] [email protected]: [email protected] [email protected]: [email protected] [email protected]: [email protected] 

基本上,[email protected]只会被转发到[email protected]并在那里停止。 任何想法为什么发生? 谢谢。

你期待它做什么? 你似乎期望virtual_address_pipe传输被调用,但你给的别名文件的例子没有任何pipe道别名…

omigosh …我刚刚在第20次重读你的问题。 我被你所描述的内容与你的例子不一致的事实分开了,因为redirect到另一个电子邮件地址不会触发pipe_transport。 我打算假设你的真正的别名文件redirect到实际的pipe道,当你试图清理一个例子,而不是发布你有问题的真正的configuration和别名文件时,它在翻译中丢失了。

无论如何,忽略这一点,我认为你的问题的答案就像把所有的目标放在一条线上一样简单:

 [email protected]: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected] 

你只能在这样的路由器上每local_part查找一次。 将所有目标放在一条线上,Exim将处理所有被查找的目标的重新路由/传送/等。 这适用于电子邮件地址,文件和pipe道:

  [email protected]: /path/to/file, |/path/to/pipe, [email protected] 

希望有所帮助。