У нас необычная настройка почты - впереди Google Apps / Gmail, а на нашем веб-сервере работает Exim. Почта для любой учетной записи, которая не существует в Google Apps, пересылается в Exim. Оба они используют один и тот же домен.
Проблема в том, что вся почта, отправляемая из учетных записей Exim (или нашего PHP-приложения), доставляется только локально, а не через Gmail.
Чтобы лучше проиллюстрировать это, посмотрите эту высококачественную диаграмму:
[Google Apps] (Tom, Dick, Harry)
|
v
[Exim] (Jane, Mary, Sue)
Почта, отправленная Джейн, пересылается в Exim от Google. Почта, отправленная Тому, просто доставляется Google. Это та часть, которая работает - проблема в том, Джейн не может написать Тому по электронной почте потому что что касается Exim, он управляет всем шоу.
Я читаю о настройке SmartHost в Exim, но для этого требуется аутентификация - и, что важно, учетные записи в Exim не совпадают с учетными записями в приложениях.
Как я могу настроить Exim для доставки локальной почты по внешним маршрутам?
Основываясь на ответе, на который вы ссылались в комментариях к вопросу (Настройте сервер для перенаправления не маршрутизируемых писем на другой почтовый сервер), Я переписал логическую часть, чтобы использовать весь адрес электронной почты, а не только локальную часть. В моем тестировании работает следующее.
1) Положите example.com в ваших + local_domains.
2) Добавьте рекомендованный им роутер. (После этого должен быть еще один маршрутизатор, который принимает + local_domains и пользователей, у которых есть действующие локальные почтовые ящики):
not_local:
driver = manualroute
domains = +local_domains
transport = remote_smtp
condition = ${lookup{$local_part@$domain}lsearch{/etc/exim/forward_to_google}}
# Use whatever MX is correct for your domain below
route_list = +local_domains s7a1.psmtp.com
3) Создать /etc/exim/forward_to_google
и вставьте в него:
remote@example.com: yes
# Not required if this is a local account, but
# shows how flexible this approach can be
local@example.com: no
4) Вы можете протестировать с помощью опции проверки адреса exim -bt (в моей конфигурации нет второго маршрутизатора для допустимых локальных пользователей, но у вас должен быть такой, чтобы первый пользователь показывал локальную доставку):
$ exim -bt local@example.com
local@example.com is undeliverable: Unrouteable address
$ exim -bt remote@example.com
remote@example.com
router = not_local, transport = remote_smtp
host s7a1.psmtp.com [64.18.6.10]