我编写了两个路由器来负责我的其中一台邮件服务器的转发:
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 文件,它将解析第一封电子邮件并转发但会在那里停止。
[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]
答案1
您希望它做什么?您似乎希望virtual_address_pipe
调用传输,但您提供的别名文件示例中没有任何管道别名……
天哪……我刚刚重读了你的问题 20 遍。我被你描述的内容与你的例子不太吻合的事实分散了注意力,因为重定向到另一个电子邮件地址不会触发 pipe_transport。我假设你的真实别名文件重定向到实际的管道,当你试图清理示例而不是发布你遇到问题的真实配置和别名文件时,它在翻译中丢失了。
无论如何,忽略这一点,我认为你的问题的答案很简单,只需将所有目标放在一行上:
[email protected]: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
在这样的路由器中,您只需要对每个 local_part 进行一次查找。将所有目标放在一行上,Exim 将处理查找到的所有目标的重新路由/传输/等。这适用于电子邮件地址、文件和管道:
[email protected]: /path/to/file, |/path/to/pipe, [email protected]
希望有所帮助。