Рейтинг:0

Настройка sendmail для прослушивания на альтернативном порту

флаг gu
QF0

я настроил Отправить почту прослушивать порт 1234, а не 25 с одним изменением на sendmail.mc:

DAEMON_OPTIONS(`Порт=1234, Имя=MTA')

Обычно это работает, за одним исключением. Предыстория заключается в том, что у меня есть реле, прослушивающее порт 25 (реле должно иметь запись MX, поэтому оно должно быть на порту 25). Ретранслятор отправляет почту через sendmail, поэтому sendmail слушает локальный: 1234. Другими словами, sendmail отвечает только за отправку писем, а не за их получение. нетстат/etc подтверждает, что relay прослушивает 25, а sendmail прослушивает 1234.

Это работает в этих двух тестовых случаях:

  1. Я могу отправлять электронные письма по телнету на sendmail (телнет локальный хост 1234)
  2. Я могу отправлять письма с s-гвоздь с соответствующим изменением конфигурации (установить mta=smtp://localhost:1234)

Однако эта установка не работать, если я запускаю sendmail напрямую:

sendmail -d8.20 -vt < test-email.txt

В этом случае sendmail пытается отправить почту, подключившись к порту 25 локально, поэтому он фактически взаимодействует с локальным ретранслятором, а не с удаленным SMTP-сервером. Вывод отладки показывает:

[email protected]... Подключение к [127.0.0.1] через реле...
220 mydomain.org ESMTP реле моего домена

Это поставило меня в тупик - есть идеи, что здесь происходит?

РЕДАКТИРОВАТЬ

Некоторый прогресс. У меня Sendmail 8.15.2, Ubuntu 20.04.Эта проблема на самом деле не имеет значения, за исключением того, что sendmail очищает свои очереди MSP с помощью задания cron, которое запускается каждые 20 минут, поэтому я получаю много записей об ошибках системного журнала и большие очереди недоставленной электронной почты, потому что sendmail не может найти себя.

Проблема выглядит следующим образом. Когда вы отправляете почту (или управляете очередями) с помощью sendmail, это (обычно) двухэтапный процесс. Вы запускаете sendmail, который читает отправить.cfнет sendmail.cf) и действует как MSA, отправляя почту во что-то. Обычно этим чем-то является локальный демон sendmail, который читает sendmail.cf когда он набирает статистику.

sendmail.cf сообщает sendmail, что ему нужно слушать локальный: 1234 для входящей почты. Это означает, что отправить.cf должен содержать конфигурацию, которая указывает программе sendmail направлять исходящие письма на локальный: 1234.

Подходящий отправить.mc конфиг наверное ОСОБЕННОСТЬ мсп, который по умолчанию равен

ФУНКЦИЯ(`msp', `[127.0.0.1]', `25')

Так что ответ, вероятно, так же прост, как изменить 25 на 1234. Однако это не так просто. Просто изменить его, перегенерировать файлы и перезапустить sendmail не имеет значения. На самом деле регенерация отправить.cf либо с м4 или же делать либо имеет ровно нулевое значение, либо дает вам ср файл с закомментированной функцией. Где-то есть какое-то волшебство, позволяющее изменить функцию, но я понятия не имею, что именно. Ответ может быть в /usr/share/sendmail/cf/feature/msp.m4, но я его не вижу.

dinoex avatar
флаг in
ФУНКЦИЯ(`msp', `[127.0.0.1]', `1234') не работал в моих тестах с 8.17.2, так как cf/feature/msp.m4 проверяет только «MSA».
Рейтинг:1
флаг in

Запуск sendmail из командной строки с использованием другого файла конфигурации.

Отредактируйте файл "submit.mc"

добавить строку:

определить(`RELAY_MAILER_ARGS', `TCP $h 1234')dnl

перед строкой:

ФУНКЦИЯ(`msp', `[127.0.0.1]')dnl

Затем скомпилируйте «submit.mc» в «submit.cf».

QF0 avatar
флаг gu
QF0
Отлично - это исправлено, спасибо.

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

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