这是我的代码......
final String from = "demo@ourmail.com";
final String password = "demo1234";
Properties props = new Properties();
props.put("mail.smtp.host", "14.141.48.131");
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(from, password);
}
});
try {
String subject = "Registeration conformation for happy shopping";
String to = demo@gmail.com;
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(to));
message.setSubject(subject);
message.setContent("<html>\n"
+ "<body>\n"
+ "\n"
+ "<p> you are successsfully login</p>"
+ "</body>\n"
+ "</html>", "text/html");
Transport.send(message);
System.out.println("end of utility");
} catch (Exception ex) {
System.out.println(ex);
}
运行此操作后,会生成异常,即
javax.mail.MessagingException: Could not connect to SMTP host: 14.141.48.131, port: 25;
nested exception is:
java.net.SocketException: Permission denied: connect
请建议我如何处理此异常。
答案 0 :(得分:0)
您的Java代码看起来很好。成功地与您的邮件服务器通信是困难的部分。
也许您正在运行Java 7,并且可能(每this个链接)可以通过设置这个简单的JVM参数来解决问题: -Djava.net.preferIPv4Stack=true
。
绝对检查您的防火墙(确保您的Java程序和邮件服务器之间的SMTP端口是打开的),并且一定要检查可能限制邮件服务器上的SMTP的任何防病毒程序。
或许您的邮件服务器需要SSL / TLS加密的SMTP端口465(而不是SMTP端口25)。
然后,也许您的ISP /互联网提供商根本不允许SMTP。
有一百万种可能性。与您的网络管理员联系。并尝试这些SMTP故障排除技巧(独立于调试Java程序):
PS:
永远不会 EVER !!!!发布真实用户名,密码...或IP地址。在 ANY 外部论坛。