Я написал 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, подобный приведенному ниже, он разрешит первое электронное письмо и перешлет его, но на этом остановится.
user1@domain.com: user1@forwardomain.com
user1@domain.com: user3@forwardomain.com
user1@domain.com: user4@forwardomain.com
user1@domain.com: user9@forwardomain.com
user1@domain.com: user111@forwardomain.com
user1@domain.com: user12@forwardomain.com
user1@domain.com: user11@forwardomain.com
Обычно user1@domain.com будет перенаправлен только на user1@forwardomain.com и на этом остановится. Есть идеи, почему это происходит? Спасибо.
Что вы от него ждете? Вы, кажется, ожидаете virtual_address_pipe
транспорт, который должен быть вызван, но в приведенном вами примере файла псевдонима нет псевдонимов каналов ...
омигошь ... Я просто в 20 раз перечитал твой вопрос. Меня отвлекло то, что то, что вы описываете, не совсем соответствует вашему примеру, поскольку перенаправление на другой адрес электронной почты не вызовет pipe_transport. Я собираюсь предположить, что ваш настоящий файл псевдонима перенаправляется на реальные каналы, и он потерялся при переводе, когда вы попытались очистить пример вместо того, чтобы опубликовать реальный файл конфигурации и псевдонима, с которым у вас возникли проблемы.
В любом случае, игнорируя это, я думаю, что ответ на ваш вопрос так же прост, как поместить все цели в одну строку:
user1@domain.com: user1@forwardomain.com, user3@forwardomain.com, user4@forwardomain.com, user9@forwardomain.com, user111@forwardomain.com, user12@forwardomain.com, user11@forwardomain.com
Вы делаете только один поиск на local_part в таком маршрутизаторе. Поместите все цели в одну строку, и Exim выполнит перенаправление / транспортировку / и т.д. всех целей, которые просматриваются. Это работает для адресов электронной почты, файлов и каналов:
user1@domain.com: /path/to/file, |/path/to/pipe, user1@forwardomain.com
Надеюсь, это поможет.