У меня установлен SMTP-сервер Postfix на моем компьютере с CentOS 7 на порту 25.
Чтобы проверить, что он работает, я подключаюсь к нему с помощью telnet, например:
# telnet localhost 25
и результат:
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 example.app ESMTP Postfix
EHLO test.com
250-example.app
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
Значит, все работает нормально.
Но теперь в конфигурационном файле Postfix /etc/postfix/main.cf
Добавляю строчку:
smtpd_sasl_auth_enable = yes
Затем я postfix reload
и попробуйте снова установить соединение Telnet. И вот результат:
Trying ::1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
Соединение закрывается автоматически без получения баннерной строки 220.
Я не понимаю, почему это не работает. Я прочитал всю README SASL на странице postfix.org и ничего не говорит о smtpd_sasl_auth_enable
имеющий такой эффект.
Почему в этом случае telnet не может установить соединение и как это решить?
Я нашел проблему, поэтому, наверное, отвечу на свой вопрос.
В библиотеке SASL отсутствовал компонент cyrus-sasl-plain
.
Я установил его с yum install cyrus-sasl-plain
и проблема решена.
Дополнительная информация в этом другом вопросе: Ошибка POSTFIX: нет механизмов аутентификации SASL