Я использую Exim 4.71. Я бы хотел:
Вот конфигурация, которая у меня не работает, как я надеялся:
domainlist a_domains = a.com domainlist b_domains = b.com : c.com : d.com : e.com begin routers smart_route_a: driver = manualroute domains = +a_domains transport = remote_smtp route_list = +a_domains mail.a.com no_more smart_route_b: driver = manualroute domains = +b_domains transport = remote_smtp route_list = +b_domains mail.mollenhour.com no_more dnslookup: driver = dnslookup domains = ! +local_domains transport = remote_smtp ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8 no_more
Когда я отправляю электронное письмо, например с PHP mail(
) или Zend_Mail_Transport_Smtp
установка как From:, так и Return-Path: как user@a.com, smart_route_a
роутер не используется, вместо него используется dnslookup. Отключение dnslookup приводит к тому, что почта не отправляется.
Из журналов видно, что письмо отправлено к something@a.com использует smart_route_a
, но такое же электронное письмо, отправленное с user@a.com на user@gmail.com, отправляется с использованием dnslookup
.
Как мне написать электронную почту из user@a.com ретранслировать через mail.a.com?
Используйте условное выражение вроде
route_list = * "${if match{$header_from:}{\N.*\.a\.com$\N} {mail.a.com}}"
domains = проверяет только целевой домен, а не исходный.