自動メール送信時Could not connect to SMTP host:10.1.1.195,port:25;エラーの解決方法

1042 ワード

最近、社内システムの自動送信メール機能をテストしている間、エラーが発生しています.
javax.mail.SendFailedException: Sending failed;
  nested exception is: 
	javax.mail.MessagingException: Could not connect to SMTP host: 10.1.1.195, port: 25;
  nested exception is: 
	java.net.SocketException: Network is unreachable: connect
	at javax.mail.Transport.send0(Transport.java:219)
	at javax.mail.Transport.send(Transport.java:81)
	at com.gree.util.MailUtil.sendMessage(MailUtil.java:241)
	at com.gree.util.MailUtil.sendTest(MailUtil.java:1112)
	at com.gree.util.MailUtil.main(MailUtil.java:1120)

同僚のパソコンで同じプロジェクトで同じコードが問題ないので、サーバーエラーの問題を排除し、telnetでポートをテストしても問題なく、ping通もでき、tomcatサーバーに起動パラメータが欠けていることに気づいた.解決策:tomcat構成にこのパラメータを追加するには、Server s->Tomcat->Openlaunch configuration->Arguments->をダブルクリックし、VM arguments入力ボックスに次の文を追加します.
-Djava.net.preferIPv4Stack=true

次にmain関数の先頭に次の文を追加します.
System.setProperty("java.net.preferIPv4Stack", "true");

もう一度テストしてみると、やはり間違いなくメールが無事に送信されました~