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

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

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

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

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

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

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

1 ответ

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

В /etc/postfix/main.cf:

      header_checks = pcre:/etc/postfix/header_checks

В /etc/postfix/header_checks:

      /^Received:/     STRIP Remove Received header.

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

      /^skipped\ spf\ test:/     STRIP Remove SPF header.

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

      postmap /etc/postfix/header_checks
systemctl restart postfix
Другие вопросы по тегам