Назад | Перейти на главную страницу

Telnet к SMTP не получает ответа 220, если пользователь не указан

Мой сервер настроен на создание только исходящей электронной почты (без получения), и время ожидания истекает при попытке связаться с smtp.example.com

По сути, электронное письмо создается процессом на myserver.example.com, отправляется в postfix на локальном хосте, который действует как вспомогательная система и передает электронное письмо на smtp.example.com.

Сообщения об ошибках от postfix на myserver.example.com:

Date/time-stamp myserver postfix/smtp[####]: ##########: to=<you@example.org>, relay=smtp.example.com:25 delay=1029, delays=729/0.01/300/0, dsn=4.4.2 status=deferred (conversation with smtp.example.com timed out while receiving the initial server greeting)

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

Я подтвердил тайм-аут telnet smtp.example.com 25 и обнаружил, что я даже не получаю начальный ответ 220 от SMTP-сервера.

Однако если я telnet -l myuser smtp.example.com 25 вместо этого я сразу получаю ответ 220 и могу отправить электронное письмо, как и ожидалось.

Я настроил postfix для использования SMTP-AUTH, добавив следующие записи в main.cf

relayhost = smtp.example.com
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/password
smtp_sasl_security_options = noanonymous
smtp_connect_timeout = 120s

Может ли кто-нибудь подсказать, как я могу изменить свою конфигурацию постфикса, чтобы получить тип быстрого (или любой) ответ я получаю, используя telnet -l myuser?

SMTP не может понять пользователя, которого вы установили с помощью -l, потому что это другой протокол, чем telnet.

Я бы предположил, что, указав -l, ваш telnet-клиент автоматически отправляет некоторые данные в smtpd а результат, который вы видите, это то, что он отвечает на любой случайный ввод?

Но все таки. Если вы просто подключитесь к своему smtpdпорт 25 и не получить никакого вывода, то, вероятно, должна быть какая-то ошибка в журналах прямо в то время, когда вы подключаетесь. Возможно, вам стоит попробовать проверить журналы с помощью tail -f при подключении? в зависимости от вашего дистрибутива журналы могут находиться в разных файлах, например, в SuSE это будет:

tail -f /var/log/mail.info /var/log/mail.err /var/log/mail.warn

Теперь, пока вы запустите это tail, подключитесь к smtpd в то же время, чтобы увидеть, записаны ли какие-либо ошибки в журнал.