У меня есть программа 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.
Прежде чем я потрачу еще один день на то, чтобы разбирать вещи и удалять / переустанавливать, я подумал, есть ли у кого-нибудь совет по исправлению этого?
telnet smtp.west.cox.net 25
из командной строки? - person Diego Basch   schedule 28.12.2012