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

Команда SMTP HELO из Windows выдает нераспознанную ошибку 500 Command, та же команда из Linux возвращает Hello

У нас есть веб-приложение Java, которое должно рассылать электронные письма нашим пользователям, и я получаю эту ошибку Java, когда эти письма пытаются выйти:

javax.mail.MessagingException: Could not connect to SMTP host: hostname.example.com, port: 25, response: 421

Я начал устранять неполадки этого исключения, попробовав некоторые команды SMTP через telnet на наш sendmail сервер. Я вижу странные расхождения между тем, как он взаимодействует с сервером Linux и Windows Server.

В Linux я могу запускать:

telnet hostname.example.com 25

и результат:

220 ******************************************************************************************************************************************************************************
HELO hostname.example.com
250 hostname.example.com Hello [xxx.xxx.xxx.xxx], pleased to meet you

(xxx.xxx.xxx.xxx заменяет IP-адрес, который я запустил telnet команда из, но звездочки не что-либо запутывать - это именно то, что выводит команда)

Однако на Windows Server, в той же подсети, vlan, брандмауэр Windows отключен, я получаю следующее:

telnet hostname.example.com 25

дает мне:

220 *********************************************************************************************************************************************************
********************
HELO hostname.example.com
500 5.5.1 Command unrecognized: "XXXX XXXXXXXXXXXXXXXXXXX"

(ни * или X были запутаны в выводе выше - это именно то, что выводит команда)

Между клиентами Linux / Windows и клиентом нет прокси. sendmail сервер.

Оказывается, это проблема брандмауэра. Наш межсетевой экран Cisco был настроен на выполнение проверки ESMTP, и мы следовали это руководство чтобы отключить его.