Назад | Перейти на главную страницу

Настройте Postfix на использование внешних MX-серверов для доставки локальной почты, если пользователь неизвестен

У меня следующая установка:

Когда кто-то извне пытается отправить почту на адрес, заканчивающийся на @ example.com, она перенаправляется на почту Google (и там обрабатывается соответствующим образом).

Когда Linux-машина пытается отправить почту во внешний мир, почта доставляется правильно, так как обратные записи dns и spf настроены правильно, поэтому Linux-машина является допустимым отправителем почты для домена example.com (вместе с почтовыми серверами google).

Однако вот в чем проблема. Когда приложение php (размещенное в ящике linux) пытается отправить почту на someuser@example.com (а someuser не существует в ящике linux), оно терпит неудачу, поскольку оно даже не обращается к почтовым серверам Google, но postfix smtp локально завершает этот "какой-то пользователь" неизвестен.

Так, вопрос в том: как мне указать postfix ретранслировать письма, отправленные в домен @ example.com, на почтовые серверы Google (то есть на серверы, указанные в записях MX), ЕСЛИ и только если почтовый ящик не найден локально.

Вам нужно, чтобы сервер postfix отвечал за example.com? (Вы когда-нибудь хотите, чтобы почта доставлялась туда, а не в Google?) Если вы всегда хотите, чтобы почта для локальных пользователей отправлялась в их Google, удалите $ mydomain из параметра mydestination в main.cf. Это не повлияет на то, откуда поступают сообщения для внешних пользователей. (Это контролируется "myorigin")

Поскольку postfix либо считает, что он отвечает за домен, либо нет, нет простого способа разделить домен так, чтобы часть почты доставлялась локально, а часть доставлялась в Google. Вы можете проделать некоторые трюки, задав правила переадресации или сопоставление транспорта, но тогда вам нужно будет указать google или local для каждого пользователя. Сомневаюсь, что ты действительно этого хочешь.

Вы установили "relayhost" в main.cf?

Вот часть main.cf

myhostname = example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost
relayhost = googlemail.host

Письма, отправленные на адрес Any@example.com, будут перенаправлены на googlemail.host

В / etc / aliases вы можете указать псевдоним для пользователя root для локальной доставки, например

root: whatever@googlemail.host