我有一个使用javax.mail发送SMTP消息的Java程序。先强调一下,这个程序在Linux系统上工作得很好。但是当我尝试在我的Windows 7 x64系统上运行同样的代码时,出现了以下错误:
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
这里是代码:
Session session = Session.getInstance(props, null);
MimeMessage msg = new MimeMessage(session);
msg.setFrom();
msg.setRecipients(Message.RecipientType.TO, props.getProperty("mail.to", "me@mine.com"));
msg.setSubject(mySubject);
msg.setSentDate(new Date());
msg.setContent(sBuf.toString(), "text/html");
Transport.send(msg);
这个程序基本上对所有设置都使用默认值。它在同一网络上的另一台计算机上可以正常工作。它使用我常规邮件客户端的相同设置,该客户端可以正常工作。在此Windows计算机上有某些东西阻止了SMTP,但仅限于Java。
我已安装Symantec(Norton)360。关闭它没有任何效果,但重新启动到安全模式(禁用几乎所有内容)允许程序正常工作并发送邮件。
因此,回顾一下:
- 程序代码是正确的。
- 设置是正确的。
- SMTP适用于Windows Mail,并且仅在此Windows计算机上阻止Java。
在我再花费一天时间拆卸和卸载/重新安装之前,我想知道是否有人有修复此问题的建议?