私は、javax.mailを使ってSMTPメッセージを送信するJavaプログラムを持っています。このプログラムは、Linuxの箱でうまく動作します。私はそれを前もって強調したいと思います。私は私のWindows 7のx64ボックスに、この同じコードをしようとすると、私はこのエラーを取得:Java Mailの謎 - SMTPブロック?
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);
このプログラムは、ほとんどすべてのデフォルト値を使用しています。
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
ここでは、コードです。同じネットワーク上の別のボックスで正常に動作します。通常のメールクライアントと同じ設定を使用しますが、正常に動作します。このWindowsボックスにはSMTPをブロックしているものがありますが、Javaの場合のみです。
Symantec(Norton)360がインストールされています。これをオフにしても差はありませんが、Safe Mode(ほとんどの機能を無効にします)に再起動すると、プログラムは正常に動作しメールを送信できます。
- プログラムコードの動作:要約するので
、。
- 設定が正しいです。
- SMTPはWindowsメール用に動作し、このWindowsマシン上でのみJava用にブロックされます。
私が別の日を過ごしてアンインストール/再インストールする前に、誰かがこれを修正するためのアドバイスを持っていたのだろうかと思いましたか?
コマンドプロンプトから 'telnet smtp.west.cox.net 25'を実行するとどうなりますか? –
どのバージョンのWindowsですか? Windowsファイアウォールはアクティブですか? – Perception
あなたのコードは安全なモードで動作するので、あなたのコードではありません。私はJavaがWindowsのファイアウォール経由で許可されていないと思う。 –