无法连接到SMTP主机:smtp8.net4india.com,端口:25;

时间:2017-08-23 11:38:53

标签: java email smtp

发送电子邮件时显示错误:

javax.mail.MessagingException: Could not connect to SMTP host: smtp8.net4india.com, port: 25;
  nested exception is:
    java.net.ConnectException: Connection timed out: connect

我的电子邮件设置是:

        String mailProcessed = "";
        Properties props = new Properties();
        props.put("mail.smtp.host", "smtp8.net4india.com");
        props.put("mail.smtp.socketFactory.port", "25");
        props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.port", "25");
        props.put("mail.smtp.starttls.enable", "true");

        Session session = Session.getDefaultInstance(props,
                new javax.mail.Authenticator() {
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(frmMail, frmPass);
                    }
                });

1 个答案:

答案 0 :(得分:0)

删除props.put("mail.smtp.starttls.enable", "true");

并添加props.put("mail.smtp.ssl.enable", "true");

您使用的是SSL,而不是TLS。

还要确保邮件服务器支持SSL。

还要确保邮件服务器正在使用TCP协议SMTP,他们可能正在使用IMAPPOP3。 在这种情况下,您需要更改他们使用的协议引用的属性,即: props.put("mail.pop3.socketFactory.port", "25"); props.put("mail.pop3.socketFactory.class","javax.net.ssl.SSLSocketFactory");

您正在使用getDefaultInstance进行会话,但如果会话已经建立,则会返回现有会话,您的属性将会丢失。

检查常见错误页面,它拥有一切: https://javaee.github.io/javamail/FAQ#commonmistakes