Java邮件无法使用tls或ssl连接到smtp

问题描述 投票:0回答:1

0

我正在尝试从Java连接到邮件服务器。我已经能够使用相同的代码从Java成功连接到许多邮件服务器,包括Gmail,Rackspace,GoDaddy和其他代码,但是无论我尝试哪种设置,该服务器都可以工作。

    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.host", this.outgoingHost);
    props.put("mail.smtp.port", 587);
    props.put("mail.smtp.ssl.trust", this.outgoingHost);
    session = Session.getInstance(props, new javax.mail.Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(username, password);
        }
    });

此操作失败,javax.mail.MessagingException:无法将套接字转换为TLS;嵌套的异常是:javax.net.ssl.SSLException:无法识别的SSL消息,纯文本连接?

我也尝试过,

    props.put("mail.smtp.host", this.outgoingHost);
    props.put("mail.smtp.port", 587);
    props.put("mail.smtp.socketFactory.port", 587);
    props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.ssl.trust", this.outgoingHost);
    session = Session.getInstance(props, new javax.mail.Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(username, password);
        }
    });

此操作失败,javax.mail.SendFailedException:无效的地址;嵌套的例外是:com.sun.mail.smtp.SMTPAddressFailedException:端口587上的邮件提交需要550 ASMTP AUTH

我也尝试过端口465,但是超时。

我能够从Thunderbird电子邮件客户端使用相同的smtp设置发送邮件(主机/端口/用户/密码相同,但必须执行其他操作)。

使用Java Mail 1.51

有什么想法吗?

java email smtp javamail
1个回答
0
投票

检查此链接以启用权限(如果发件人具有Google电子邮件):

Link Permission Google

未经许可,您不能从不是由Google开发的应用中登录。

仅用于登录时使用您邮件的域。例如:[email protected]>文本

© www.soinside.com 2019 - 2024. All rights reserved.