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