Я использую конфигурацию на основе файлов (без dbm или sql) для нескольких моих виртуальных доменов / пользователей с exim / dovecot.
Мой configure
содержит следующий routers
:
virtual_filter:
driver = redirect
allow_filter
no_check_local_user
condition = ${if exists{/home/mail/${domain}/${local_part}/filter}{yes}{no}}
domains = dsearch;/etc/mail/virtual
router_home_directory = /home/mail/${domain}/${local_part}
user = mailnull
group = mail
file = /home/mail/${domain}/${local_part}/filter
file_transport = virtual_address_file
pipe_transport = address_pipe
retry_use_local_part
no_verify
virtual_user:
....
virtual_aliases:
....
no_more
Итак, если существует /home/mail/virtualdomain.com/username/filter
exim будет использовать это.
Один из моих пользователей просил также скопировать все его входящие электронные письма в его учетную запись Gmail. Так как
.forward
проверяет виртуальных пользователейaliases
для виртуальных доменов проверяются только после в virtual_user
маршрут доставки, поэтому только если на данном адресе нет виртуального почтового ящикаvirtual_filter
это первое правило в роутерахищет способ, как скопировать всю входящую электронную почту для этого пользователя, используя его filter
.
Я попробовал
unseen deliver <username@gmail.com>
но это вызвало только fowrard для всех писем в Gmail без доставки в dovecot, и я хочу оба: 1.) через virtual_user
стандартная доставка по маршруту, и 2.) отправить копию сообщения по адресу username@example.com
Любое предложение?
Только что разобрался, достаточно добавить:
/home/mail/myvirtualdomain.com/myuser/filter
следующие две строки
unseen noerror deliver <username@gmail.com>
deliver <myuser@myvirtualdomain.com>
Итак, доставьте одну копию в Gmail, а другую в обычный почтовый ящик.