Как выбрать смарт-хост на основе адреса From: в exim4 на Debian
Я хочу направлять электронные письма с помощью From: .*@host1.com
через smtp.server1.com
и электронные письма с От: .*@host2.com
через smtp.server2.com
,
На данный момент у меня есть SmartHost настроен с dpkg-reconfigure exim4-config
чтобы update-exim4.conf.conf
содержит строку dc_smarthost='smtp.server1.com::587'
, То есть все проходит через smtp.server1.com
,
Я пытался добавить еще один маршрутизатор перед определением smarthost:
в конфигурационном файле, настройка senders = .*@host2.com
smarthost_server2:
debug_print = "R: smarthost_server2 for $local_part@$domain"
driver = manualroute
domains = ! +local_domains
transport = remote_smtp_smarthost
senders = .*@host2.com
route_list = * smtp.server2.com byname
host_find_failed = ignore
same_domain_copy_routing = yes
no_more
но exim все еще маршрутизирует все через smtp.server1.com
, Я использую senders
состояние правильно?
AFAIU, это должно быть довольно распространенной настройкой для случаев, когда люди с электронной почтой.@ google.com и.@ gmail.com не хотят раскрывать в своих заголовках электронной почты @ gmail.com тот факт, что они также являются сотрудниками Google, поэтому рутинг должен быть другим.
1 ответ
Ладно, я понял. senders
это то, что предоставляет /etc/mailname, а не доменная часть From:
Следующие работы:
smarthost_server2:
debug_print = "R: smarthost_server2 for $local_part@$domain"
driver = manualroute
domains = ! +local_domains
transport = remote_smtp_smarthost
condition = ${if match_domain{${domain:$h_From:}}{smtp.server2.com}{yes}{no}}
route_list = * smtp.server2.com byname
host_find_failed = ignore
same_domain_copy_routing = yes
no_more
Обратите внимание на условие, которое извлекает доменное имя из From:
заголовок и сравнивает его с smtp.server2.com
,