O que está impedindo meu programa de enviar e-mail?

1

Eu tenho um programa em Java que usa javax.mail para enviar uma mensagem SMTP. Este programa FUNCIONA FINA em uma caixa Linux, quero enfatizar isso de antemão. Quando eu tento esse mesmo código na minha caixa do Windows 7 x64, recebo este erro:

send failed, exception: javax.mail.MessagingException: Could not connect to SMTP host:     smtp.west.cox.net, port: 25;
nested exception is:  java.net.SocketException: Network is unreachable: connect

Aqui está o código:

Session session = Session.getInstance(props, null);
MimeMessage msg = new MimeMessage(session);
msg.setFrom();
msg.setRecipients(Message.RecipientType.TO, props.getProperty("mail.to", "[email protected]"));
msg.setSubject(mySubject);
msg.setSentDate(new Date());
msg.setContent(sBuf.toString(), "text/html");
Transport.send(msg);

Este programa praticamente usa padrões para tudo. Ele funciona bem em outra caixa na mesma rede. Ele usa as mesmas configurações que eu uso para o meu cliente de e-mail normal, o que funciona bem. Há algo nessa caixa do Windows que está bloqueando o SMTP, mas apenas para Java.

Eu tenho o Symantec (Norton) 360 instalado. Desligá-lo não faz diferença, mas a reinicialização no modo de segurança (que desativa quase tudo) permite que o programa funcione e envie emails muito bem.

Então, para recapitular:

  1. O código do programa funciona.
  2. As configurações estão corretas.
  3. O SMTP funciona para o Windows Mail e é bloqueado apenas para Java nesta máquina Windows.

Antes de passar outro dia destruindo coisas e desinstalando / reinstalando, fiquei imaginando se alguém tinha algum conselho sobre consertar isso?

    
por user1071914 28.12.2012 / 15:29

1 resposta

1

"Não foi possível conectar ao host SMTP" e "Rede inacessível" sugere que a causa raiz é que sua máquina Windows não pode se conectar à máquina smtp.west.cox.net. Isto pode ser devido a uma das várias razões:

  • A máquina Windows não pode resolver smtp.west.cox.net para um IP (improvável dada a mensagem de erro)
  • A máquina do Windows não tem rota para o IP desse servidor
  • O servidor smtp.west.cox.net não está aceitando conexões do seu servidor Windows (provavelmente apenas se o seu servidor Windows estiver vindo de um IP diferente (da perspectiva do servidor SMTP) do que o seu servidor Linux)
por 28.12.2012 / 15:56