Postfix не будет принимать отправленную электронную почту для других пользователей в виртуальном домене
Мой работодатель дал мне адрес электронной почты, [email protected]
, Сервер исходящей почты моего работодателя разрешает подключения только из своей сети (скорее, провайдер, который настаивает на том, чтобы вы подключались через них, чтобы использовать их SMTP-сервер). Поэтому, когда я выхожу в кафе на обед и на мой телефон приходит электронное письмо от моего босса, я не могу ответить на него, пока не вернусь в офис. Кроме того, я не могу отвечать на рабочие письма, когда я путешествую или работаю в поле.
Я не могу перенастроить основной почтовый сервер, но у меня есть небольшой отдельный сервер Postfix, которым я могу управлять. У меня есть несколько виртуальных доменов, и я добавил myemployersdomain.com
в качестве дополнительного виртуального домена, и [email protected]
как виртуальный пользователь. Это работает, и я могу отправлять исходящую почту через этот сервер в любую точку мира, КРОМЕ других пользователей на myemployersdomain.com (это все, что я действительно хочу).
Когда я пытаюсь отправить на [email protected], я получаю
NOQUEUE: reject: RCPT from... 550 5.1.1 ... Адрес получателя отклонен: пользователь неизвестен в таблице виртуальных почтовых ящиков
Сервер Postfix считает, что он контролирует все myemployersdomain.com, и если я не настрою виртуального пользователя для получателя в этом домене, он этого не допустит. Я могу устранить ошибку, установив псевдоним перехвата в виртуальном файле.
@myemployersdomain.com [email protected]
но, конечно, все письма, которые я отправляю, сразу же возвращаются ко мне!
Я попытался настроить транспортный файл так, чтобы он пересылал всю почту для myemployersdomain.com, например, через gmail:
example.com :
myemployersdomain.com smtp:[smtp.gmail.com]:587
но это не имеет значения. (Ретрансляция работает, как и ожидалось, для адресов получателей в других (внешних) доменах, но для этого виртуального домена Postfix не позволяет вам достигнуть такого уровня - сначала возникает ошибка 5.1.1.)
Можно ли настроить Postfix для отправки почты, предназначенной для локально определенного виртуального домена, в большой широкий Интернет и позволить DNS разобраться?
2 ответа
Если вы настроите свой дополнительный компьютер в качестве резервного сервера, вам понадобится несколько настроек.
relay_domains= myemployersdomain.com
Вы также будете использовать свой transport_maps
как это:
myemployersdomain.com relay:[the.actual.server]
Тогда вам (как говорит Сокол) понадобится relay_recipient_maps
либо с подстановочным знаком, либо с записью для вас и вашего босса.
Затем я настроил бы авторизацию SASL с шифрованием TLS и разрешил отправку только тем пользователям, которые проходят аутентификацию.
smtpd_relay_restrictions = permit_sasl_authenticated, reject
`
Весь смысл доменной части адреса электронной почты состоит в том, что он указывает, какой набор SMTP-серверов отвечает за доставку почты для всего домена. Другими словами, вы не можете подразделять домены таким образом.
Тем не менее, похоже, что вы действительно хотите сделать (помимо обхода политики, но теоретически это интересный вопрос, так что я все равно отвечаю на него) - это просто ретранслировать почту.
В этом случае он должен ретранслировать всю почту, которую он видит, до тех пор, пока пользователь проходит аутентификацию. Я полагаю, вы можете настроить его, чтобы вообще не иметь локального домена. В конце концов, я предполагаю, что вы на самом деле не хотите, чтобы ваш ретранслятор MTA принимал доставку почты и, следовательно, имел две папки с одним и тем же адресом. Это было бы просто сбивающим с толку.
Если вы скажете ему передать все, он отправит все, что находится в записи MX для конечного домена, что, я думаю, вам нужно.
Лучше всего это сделать, не устанавливая локальный домен. Эта настройка является общей для ретрансляторов MTA, которые используются, например, для фильтрации вирусов и спама.
Я помню, что есть особенность под названием relay_recipient_maps
, но я не думаю, что это правильный подход в этом случае использования.