Рейтинг:0

Можно ли отправлять почту через Postfix на другой компьютер в той же локальной сети без необходимости ретрансляции?

флаг ve

Я думал, что это довольно распространенная ситуация, но я немного изо всех сил пытаюсь заставить это работать самым простым способом, а также я не уверен, делаю ли я это хорошим/рекомендуемым способом.

У меня есть два сервера, которые могут обмениваться данными через локальную сеть (а также оба имеют общедоступные IP-адреса в Интернете). Один запускает Postfix, другой обслуживает некоторые веб-сайты.

Что я хочу сделать, так это иметь возможность отправлять почту (например, письмо с подтверждением и тому подобное) через PHP с хоста веб-сервера. Поскольку это все, что делает машина, я не хочу устанавливать там полноценный Postfix, а использовать другой хост для отправки почты.

Что я сделал, так это настроил msmtp на веб-сервере и объявил его IP-адрес локальной сети надежным (путем добавления его в my_networks Postfix и т. д.) на почтовом сервере. Это работает, я могу отправлять почту с этого хоста. Но, как и ожидалось, Postfix действует как ретранслятор для почты, отправленной таким образом, добавляет соответствующий заголовок, комментарий о том, что проверка SPF была пропущена и так далее.

Теперь интересно, можно ли это сделать проще, так как веб-сервер имеет доступ по локальной сети к почтовому серверу. Можно ли напрямую использовать sendmail на почтовом сервере с веб-сервера? Например, через канал ssh, используя непривилегированного пользователя с ключом SSH без пароля? Или через какую-то маленькую программу на почтовом сервере (я не нашел), которая слушает какой-то незащищенный порт и пересылает входящие данные на sendmail? Так что на веб-сервере можно использовать фиктивный скрипт sendmail, который просто передает данные на адрес локальной сети почтового сервера и указанный порт?

Спасибо за все подсказки :-)

Рейтинг:0
флаг jp

Вы можете отправлять сообщения из своего приложения непосредственно на сервер электронной почты, используя порт отправки 587. Видеть RFC 6409.

Tobias Leupold avatar
флаг ve
Конечно, это то, что делает почтовый клиент для настольных компьютеров. Но для этого мне понадобилась бы «реальная» учетная запись с сохраненными паролями в открытом виде и так далее…
флаг jp
Вы можете настроить почтовый сервер, чтобы разрешить отправку с определенного IP-адреса без запроса пароля.
Tobias Leupold avatar
флаг ve
Я думаю, это то, что я делаю прямо сейчас: веб-сервер находится в my_networks Postfix, и с помощью msmtp я могу отправлять почту, а почтовый сервер ретранслирует ее. Но добавляются дополнительные заголовки (Получено, пропущен тест SPF). Я хочу отправлять почту с веб-сервера, как если бы она была отправлена ​​непосредственно с почтового сервера ¦
флаг jp
Тогда вам нужно разместить отдельный вопрос - как скрыть полученный заголовок.
Рейтинг:0
флаг fr

Если вы хотите удалить заголовок Received, сделайте это на прокси-сервере:

В /etc/postfix/main.cf:

header_checks = pcre:/etc/postfix/header_checks

В /etc/postfix/header_checks:

/^Received:/ STRIP Удалить заголовок Received.

Я не уверен на 100% в том, что говорит ваш заголовок SPF, но попробуйте поместить это в /etc/postfix/header_checks:

/^skipped\ spf\ test:/ STRIP Удалить заголовок SPF.

Наконец, запустите эти две команды:

почтовая карта /etc/postfix/header_checks
systemctl перезапустить постфикс

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.