Exim client не выдает STARTTLS при подключении к smarthost

У меня есть сервер Debian8 под управлением exim4, который отправляет исходящую почту по smarthost через smtp-сервер mail.privateemail.com NameCheap - или, по крайней мере, для этого. После недавнего обновления сервер больше не принимает соединения через порт 25. Я перенастроил exim на использование порта 587, но не могу отправлять почту.

Эта проблема возникает во время рукопожатия STARTTLS. Начальное соединение успешно, сервер отправляет свой ответ 220, клиент exim отправляет свою команду ELHO, и сервер предлагает опцию 250 STARTTLS. В этот момент вместо ответа с помощью STARTTLS и установления безопасного соединения exim начинает отправлять заголовки сообщений. На это сервер отправляет 530 "Должен сначала выполнить команду STARTTLS", и попытка доставки сообщения прекращается. Вот фрагмент отладочной информации о принудительной доставке замороженного сообщения с exim -d -M:

Transport port=25 replaced by host-specific port=587
Connecting to mail.privateemail.com [198.54.122.60]:587 ... connected
waiting for data on socket
read response data: size=32
  SMTP<< 220 PrivateEmail.com Mail Node
198.54.122.60 in hosts_avoid_esmtp? no (option unset)
  SMTP>> EHLO efserver.hellonull.com
waiting for data on socket
read response data: size=22
  SMTP<< 250-STARTTLS
         250 OK
198.54.122.60 in hosts_require_tls? no (option unset)
198.54.122.60 in hosts_avoid_pipelining? no (option unset)
not using PIPELINING
198.54.122.60 in hosts_require_auth? no (option unset)
  SMTP>> MAIL FROM:<>
waiting for data on socket
read response data: size=41
  SMTP<< 530 Must issue a STARTTLS command first
ok=0 send_quit=1 send_rset=1 continue_more=0 yield=0 first_address is not NULL
  SMTP>> QUIT

Ранее все работало на порту 25. Кроме того, я могу отправлять исходящую почту, используя IceDove, настроенный на использование того же сервера, порта и STARTTLS. Может кто-нибудь объяснить, почему exim, похоже, игнорирует предложение STARTTLS с сервера?

2 ответа

Вы можете исправить это, добавив hosts_require_tls вариант со смартхостом в списке к вашей конфигурации. Это заставит exim отправлять команду STARTTLS для установления соединения TLS. Тем не менее hosts_avoid_tls опция может переопределить эту настройку.

Вы можете попробовать использовать порт 465 (SSMTP). T Документально подтверждается как поддерживаемый для входящего трафика. Поддерживает исходящий трафик. Я проверил определение смарт-хоста как example.com:ssmtp вместо example.com,

Я рад сообщить, что проблема исправлена. Проблема, кажется, была с частной почтовой службой NameCheap. Я пошел работать над этим снова сегодня и после dpkg-reconfigure exim4-config используя те же настройки, что и раньше, я могу отправлять исходящую почту через mail.privateemail.com:587. Мне не нужно было менять какие-либо специальные опции в конфиге exim. SMTP-диалог показывает, что сервер privateemail.com теперь нормально отвечает на SMTP-соединение. Я предполагаю, что обновление по NameCheap решило проблему.

SMTP>> EHLO efserver.hellonull.com
SMTP<< 250-MTA-08.privateemail.com
    250-PIPELINING
    250-SIZE 81788928
    250-ETRN
    250-STARTTLS
    250-AUTH PLAIN LOGIN
    250-ENHANCEDSTATUSCODES
    250-8BITMIME
    250 DSN
SMTP>> AUTH PLAIN ********************************************
SMTP<< 235 2.7.0 Authentication successful
Другие вопросы по тегам