尝试使用Transport.send()
(Win7,64位)发送邮件会出现网络错误:
java.net.SocketException: Network is unreachable: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:80)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:369)
此网站上有关于此的各种其他问题,建议将java.net.preferIPv4Stack
设置为true。除了我,它似乎适用于所有人!
如果我ping服务器,它会正常响应。
我还试图在一个小的测试程序中找出问题,这个程序完美地发送了邮件,但在“真实的”邮件中。应用程序,它不起作用。我还在邮件会话中使用了setDebug(true),但调试输出对于测试程序和“真实”是相同的。应用程序 - 这是真正的'失败的地方。应用
我验证了java.net
设置,只需在“真实”邮件中发送邮件之前插入这些行即可。应用程式:
System.out.println( "Using IP4 stack: " + System.getProperty( "java.net.preferIPv4Stack" ) );
System.out.println( "Using IP6 addresses : " + System.getProperty( "java.net.preferIPv6Addresses" ) );
分别产生true
和false
。所以问题不在于这些设置之一。是否设置java.net.preferIPv6Addresses
没有任何区别。
@Gimby:是的。而且,如果我使用普通邮件客户端向同一个SMTP服务器发送邮件,它就能完美运行。 @SME_Dev:SMTPTransport,在应用程序和测试程序中。
我想知道,其他网络设置可能与此相关吗?可能会出现什么问题?