【问题标题】:Javamail STARTTLS with self-signed certificate using Spring container使用 Spring 容器的带有自签名证书的 Javamail STARTTLS
【发布时间】:2016-02-09 16:24:51
【问题描述】:

我正在尝试使用端口 25 上的自签名证书连接到 SMTP 服务器 (James 3),并且开启了 STARTTLS。

我已启用 JavaMail 属性以信任所有主机,但我仍然收到 PKIX 证书路径验证错误。我怎样才能摆脱错误?

请看下面的代码。

   //Trust all hosts
    MailSSLSocketFactory sf = new MailSSLSocketFactory();
        sf.setTrustAllHosts(true);
    Properties props = new Properties();
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable","true");
    props.put("mail.smtp.starttls.required", "true");
    props.put("mail.smtp.auth.mechanisms", "PLAIN");
    props.put("mail.smtp.socketFactory.fallback", "false");
    props.put("mail.smtp.ssl.socketFactory", sf);

    Session session = Session.getInstance(props, null);

        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress(ti.sutUserName));
        message.setRecipients(Message.RecipientType.TO,
                InternetAddress.parse(ti.sutEmailAddress));


        BodyPart messageBodyPart = new MimeBodyPart();

        messageBodyPart.setText("This is message body");

        Multipart multipart = new MimeMultipart();



        log.info("Sending Message");

        Transport transport = session.getTransport("smtp");
        transport.connect(ti.sutSmtpAddress, ti.sutUserName, ti.sutPassword);
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();`

【问题讨论】:

  • 您使用的是什么版本的 JavaMail?尝试摆脱对套接字工厂和相关属性的所有显式使用,只需将属性“mail.smtp.ssl.trust”设置为“*”。如果这不起作用,请打开JavaMail session debugging,将系统属性“mail.socket.debug”设置为“true”,然后发布调试输出。

标签: ssl jakarta-mail self-signed starttls


【解决方案1】:

我在 Spring Boot 容器中使用 Javamail API (Compact) 1.4,该容器默认具有 Javamail 1.5.3。在我将 jar 更改为 1.5.3 后,程序开始正常工作。

见:Spring Boot 1.2.5.RELEASE - Sending E-mail via Gmail SMTP

感谢您的帮助。

【讨论】:

    猜你喜欢
    • 2013-07-08
    • 2015-01-09
    • 2021-03-17
    • 2015-02-21
    • 2016-08-31
    • 1970-01-01
    • 2014-05-05
    • 2015-06-18
    • 1970-01-01
    相关资源
    最近更新 更多