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

Что мешает моей программе отправлять электронную почту?

У меня есть программа 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", "me@mine.com"));
msg.setSubject(mySubject);
msg.setSentDate(new Date());
msg.setContent(sBuf.toString(), "text/html");
Transport.send(msg);

Эта программа практически для всего использует значения по умолчанию. Он отлично работает на другом компьютере в той же сети. Он использует те же настройки, которые я использую для своего обычного почтового клиента, который отлично работает. В ЭТОМ окне Windows есть что-то, что блокирует SMTP, но только для Java.

У меня установлен Symantec (Norton) 360. Отключение не имеет значения, но перезагрузка в безопасном режиме (который отключает почти все) позволяет программе нормально работать и отправлять почту.

Итак, резюмируем:

  1. Программный код работает.
  2. Настройки правильные.
  3. SMTP работает для Windows Mail и заблокирован только для Java на этом компьютере с Windows.

Прежде чем я потрачу еще один день на разборку и удаление / переустановку, я подумал, есть ли у кого-нибудь совет по исправлению этого?

«Не удалось подключиться к хосту SMTP» и «Сеть недоступна» предполагают, что основная причина заключается в том, что ваш компьютер Windows не может подключиться к компьютеру smtp.west.cox.net. Это могло произойти по одной из нескольких причин:

  • Компьютер с Windows не может преобразовать smtp.west.cox.net в IP-адрес (маловероятно, учитывая сообщение об ошибке)
  • У машины Windows нет маршрута к IP-адресу этого сервера
  • Сервер smtp.west.cox.net не принимает подключения от вашего сервера Windows (вероятно, только если ваш сервер Windows идет с другого IP-адреса (с точки зрения SMTP-сервера), чем ваш сервер Linux)