Как выбрать смарт-хост на основе адреса 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,

Другие вопросы по тегам