我一直在尝试通过javamail api使用smtp服务器发送电子邮件。我收到以下错误:
javax.mail.MessagingException: Could not connect to SMTP host: smtp.host.com, port: 587;
nested exception is:java.net.SocketException: Permission denied: connect
以下是我为邮件创建Properties
和Session
对象的方式:
private Session getSession() {
Authenticator authenticator = new Authenticator();
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.submitter", authenticator.getPasswordAuthentication().getUserName());
properties.setProperty("mail.smtp.auth", "false");
properties.setProperty("mail.smtp.starttls.enable", "false");
properties.setProperty("mail.smtp.host", "smtp.hostname.com");
properties.setProperty("mail.smtp.port", "587");
properties.setProperty("mail.smtp.ssl.trust", "smtp.hostname.com");
properties.setProperty("java.net.preferIPv4Stack" , "true");
return Session.getInstance(properties, authenticator);
}
private class Authenticator extends javax.mail.Authenticator {
private PasswordAuthentication authentication;
public Authenticator() {
String username = "username";
String password = "password";
authentication = new PasswordAuthentication(username, password);
}
protected PasswordAuthentication getPasswordAuthentication() {
return authentication;
}
}
我已尝试按照某些帖子的建议禁用身份验证,并根据此帖子输入IPv4首选项的解析: JavaMail API to iMail -- java.net.SocketException: Permission denied: connect
但我仍然得到同样的错误。有没有其他方法可以解决这个问题?
感谢。
答案 0 :(得分:0)
我发现了类似的问题here。
尝试查看问题是否与防病毒或阻止您的请求的防火墙有关。
答案 1 :(得分:0)
关闭防火墙并在Google中找到您在jar / lib / security中遗漏的一些安全证书 我已经面对这个,然后我必须在php中使用phpmailer lib并在代码中的任何地方使用API,这样你就可以尝试使用php。