我刚刚编写了一个测试独立的 Java 邮件应用程序,用于从我的 gmail A/C 向 Outlook 发送一封电子邮件,它就像一个魅力。以下是邮件会话的基本属性:
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.starttls.enable", "true");
但是,当我在 Glassfish 5 Java 电子邮件会话(在管理控制台上)中配置相同的属性时,我在运行 Web 应用程序时在日志中看到以下错误:
StandardWrapperValve[Faces Servlet]: Servlet.service() for servlet Faces Servlet threw exception
java.lang.NoSuchMethodError: sun.security.ssl.Handshaker.setApplicationProtocols([Ljava/lang/String;)V
at sun.security.ssl.SSLSocketImpl.initHandshaker(SSLSocketImpl.java:1350)
PS - 对于这两种情况,Google A/C 上的“不太安全的应用程序访问”都设置为 ON。
困惑!任何帮助将不胜感激。