无法使用smtp server-javamail发送邮件

时间:2016-06-13 15:47:26

标签: java javamail permission-denied socketexception

我一直在尝试通过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

以下是我为邮件创建PropertiesSession对象的方式:

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

但我仍然得到同样的错误。有没有其他方法可以解决这个问题?

感谢。

2 个答案:

答案 0 :(得分:0)

我发现了类似的问题here

尝试查看问题是否与防病毒或阻止您的请求的防火墙有关。

答案 1 :(得分:0)

关闭防火墙并在Google中找到您在jar / lib / security中遗漏的一些安全证书 我已经面对这个,然后我必须在php中使用phpmailer lib并在代码中的任何地方使用API​​,这样你就可以尝试使用php。