Я хочу направлять электронные письма с помощью 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, поэтому ротация должна быть другой.
Ладно, я понял. 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
.