在ssh中使用javamail自动发送邮件,出现异常如下
- javax.mail.MessagingException: Could not connect to SMTP host: xxx.xxx.xxx, port: 25;
- nested exception is:
- java.net.SocketException: Network is unreachable: connect
这里使用的smtp服务器是公司内部的服务器,之前使用163的smtp服务器时没有出现该问题,查了很长时间的资料,终于找到解决方法:
将java.net.preferIPv4Stack设置为true,如果程序中有main方法,可以在main方法的开头加入
- System.setProperty("java.net.preferIPv4Stack", "true");
如果使用tomcat服务器,则可以给tomcat加上启动参数
- -Djava.net.preferIPv4Stack=true
如果是使用的eclipse javaee启动的tomcat,使用如下方法设置:
切换到Servers选项卡,双击Tomcat,在General Information中找到open launch configuration并单击
在弹出的窗口中选择第二个选项卡Arguments,在VM arguments的输入框的最后加上
-Djava.net.preferIPv4Stack=true
本文介绍了在SSH环境中使用JavaMail自动发送邮件时遇到网络不可达异常的解决方法,包括在Java程序中设置java.net.preferIPv4Stack属性为true,以及针对使用Tomcat服务器的情况提供相应的启动参数设置步骤。
2万+

被折叠的 条评论
为什么被折叠?



