Acontece que este era um problema de firewall. Nosso firewall da Cisco foi configurado para executar o ESMTP Inspection e seguimos este guia para desativá-lo.
Temos um aplicativo da Web em Java que precisa enviar e-mails para nossos usuários, e estou recebendo este erro de Java quando esses e-mails tentam sair:
javax.mail.MessagingException: Could not connect to SMTP host: hostname.example.com, port: 25, response: 421
Comecei a solucionar essa exceção tentando alguns comandos SMTP via telnet para o nosso servidor sendmail
. Estou vendo estranhas discrepâncias entre como ele interage com um servidor Linux e com um Windows Server.
No Linux, posso executar:
telnet hostname.example.com 25
e o resultado é:
220 ******************************************************************************************************************************************************************************
HELO hostname.example.com
250 hostname.example.com Hello [xxx.xxx.xxx.xxx], pleased to meet you
(xxx.xxx.xxx.xxx está substituindo o endereço IP do qual executei o comando telnet
, mas os asteriscos não ofuscam nada - é exatamente isso que a saída do comando)
No entanto, no Windows Server, na mesma sub-rede, vlan, o Firewall do Windows desativado, recebo o seguinte:
telnet hostname.example.com 25
me dá:
220 *********************************************************************************************************************************************************
********************
HELO hostname.example.com
500 5.5.1 Command unrecognized: "XXXX XXXXXXXXXXXXXXXXXXX"
(nem o *
ou X
foram ofuscados na saída acima - isso é exatamente o que a saída do comando)
Não há proxies entre os clientes Linux / Windows e o sendmail
server.
Acontece que este era um problema de firewall. Nosso firewall da Cisco foi configurado para executar o ESMTP Inspection e seguimos este guia para desativá-lo.