javax.mailを使用してSMTPメッセージを送信するJavaプログラムがあります。このプログラムは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をインストールしています。オフにしても違いはありませんが、セーフモード(ほとんどすべてが無効になります)で再起動すると、プログラムが正常に機能し、メールを送信できます。
要約すると、次のようになります。
- プログラムコードは機能します。
- 設定は正しいです。
- SMTPはWindowsメールで機能し、このWindowsマシンのJavaでのみブロックされます。
Before I spend another day tearing things apart and uninstalling / reinstalling, I wondered if anyone had any advice on fixing this?