Java7とJavaMail
Java7でJavaMailを使うと、以下のようなエラーでSMTPサーバへの接続が失敗します。
javax.mail.MessagingException: Could not connect to SMTP host: 192.168.151.201, port: 25;
nested exception is:
java.net.SocketException: Network is unreachable: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1282)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
at javax.mail.Service.connect(Service.java:275)
at javax.mail.Service.connect(Service.java:156)
at javax.mail.Service.connect(Service.java:105)
at javax.mail.Transport.send0(Transport.java:168)
at javax.mail.Transport.send(Transport.java:98)
...Caused by: java.net.SocketException: Network is unreachable: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:232)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1250)
... 11 more
なぜかLinuxマシンではエラーが出ず、Windowsマシンでのみ発生。
念のためtelnetでSMTPを喋ってみたら、正しく接続できる。
調べてみたら以下の記事を見つけました。
Java Mail mystery - SMTP blocked?
http://stackoverflow.com/questions/14064111/java-mail-mystery-smtp-blocked
どうもJava7になってから、IPv6のネットワークアダプタが存在する場合にそっちを優先的に使おうとするようですね。WindowsはXPの頃からIPv6がデフォルトで(使ってなくても)設定されますから。
Javaの起動オプションで
-Djava.net.preferIPv4Stack=true
を指定することで解決。
または、プログラム内から以下を呼び出すことでも同じ結果が得られるようです。
System.setProperty("java.net.preferIPv4Stack", "true");
- 作者: Elliotte Rusty Harold
- 出版社/メーカー: O'Reilly Media
- 発売日: 2013/07/23
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: 木下信
- 出版社/メーカー: 秀和システム
- 発売日: 2001/03
- メディア: 単行本
- 購入: 1人 クリック: 3回
- この商品を含むブログ (2件) を見る
謹賀新年
今年もよろしくお願いします。
再始動
永らく休眠中のこのblog、再開してみます。
今日はもう眠いのでこのへんで。
ようし、明日から本気出す!
Maven 1.1リリース
Maven 1.*系のメンテナンスリリース。
Maven 1.1 is meant to improve the performance and stability for those using Maven 1.0 for their builds.
Compared to Maven 1.0.2, this release features several enhancements:* Integration of Maven 2 technologies such as Maven Wagon, Maven SCM and the new model code
* Ant 1.6.5 support
* Upgrade dependencies, in particular Jelly, Dom4j, Jaxen, Commons-Jexl, and many others.
* Upgraded versions [2] of almost all the bundled plugins,
* Improved error handling and reporting.
* Improved POM layout
* Significant improvements in memory usage and general performance.
* Documentation updates.
ということらしいです。
なかなか思い通りには・・・
やっぱりblog書く時間がとれません。単に意識の問題かもしれませんが。
最近は移動時間が多いので、携帯電話やPDAから更新できなくもないのですが、本腰入れて技術ネタを書こうと思ったら、やはりPCでないと辛いですね。以下、最近気になっているキーワードをいくつか。
Java SE 5,6,7 ...
いちおう追っかけてます。JSR 296: Swing Application Frameworkを知り、少し興味を持っています。あと、クロージャ。
Windows Vista
ルック&フィール以外の変更点がよく分かっていません。Windows MEと同じイメージを持ってしまうのですが・・・。