gpt4 book ai didi

Javamail 和 TLS? (不是 STARTTLS)

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:52:49 24 4
gpt4 key购买 nike

我需要使用 Javamail 和 TLS(不是 STARTTLS,而是专用于 SSL/TLS 的专用 smtp 端口!)发送电子邮件。我只设法找到了 gmail 的示例,但是使用了 STARTTLS。有人可以发布普通 SSL/TLS 的示例吗?非常感谢!

最佳答案

official examples for JavaMail with Gmail使用 SMTPS(即在专用端口上通过 SSL/TLS 的 SMTP)而不是 STARTTLS。本质上,使用 JavaMail 的属性应该是 mail.smtps.*而不是 mail.smtp.* .

如果您想强制使用特定版本的 SSL/TLS,例如 TLSv1.0,您需要创建自己的 SSLSocketFactory ,可能包装默认 SSLSocketFactory (或任何其他您定制的),但您需要调用 sslSocket.setEnabledProtocols(new String[] { "TLSv1" })在返回套接字之前。

您需要通过 SSLSocketFactory通过 mail.smtps.ssl.socketFactory 作为实例配置属性,或通过 mail.smtps.ssl.socketFactory.class 作为完全限定的类名(在这种情况下,您的类必须实现一个名为 getDefault 的静态方法)。

为了防止中间人攻击,还需要让客户端验证服务器主机名:需要设置mail.smtps.ssl.checkserveridentitytrue , 因为它似乎是 false默认情况下。

关于Javamail 和 TLS? (不是 STARTTLS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12130200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com