У меня есть Java-программа, которая использует javax.mail для отправки SMTP-сообщения. Эта программа отлично работает на ящике Linux, я хочу подчеркнуть это заранее. Когда я пытаюсь использовать этот же код в своем окне Windows 7 x64, я получаю эту ошибку:
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
Вот код:
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);
Эта программа в значительной степени использует значения по умолчанию для всех. Он отлично работает на другой коробке в той же сети. Он использует те же настройки, которые я использую для своего обычного почтового клиента, который работает нормально. В этом окне Windows есть что-то, что блокирует SMTP, но только для Java.
У меня установлен Symantec (Norton) 360. Отключение его не имеет значения, но перезагрузка в безопасный режим (который отключает почти все) позволяет программе работать и отправлять почту просто отлично.
Итак, чтобы повторить:
- Программный код работает.
- Настройки верны.
- SMTP работает для Windows Mail и блокируется только для Java на этой машине Windows.
Прежде чем я потрачу другой день, разрывая вещи и удаляя/переустанавливая, я задавался вопросом, есть ли у кого-нибудь советы по исправлению этого?