当前位置: 首页 > 知识库问答 >
问题:

如何为JavaMail使用特定协议?

钱远
2023-03-14

共有1个答案

陶烨赫
2023-03-14

在1.5.3以下的javamail版本中,如果没有设置sysprop,它将使用TLSV1.0,这(1)在最近的Java版本上根本不起作用,(2)在越来越多的服务器上也不起作用,因为1.0被BEAST短暂地“破坏”了,许多权威机构不再允许它。参见postfix和openJDK 11:“没有合适的协议(协议被禁用或密码套件不合适)”,特别是我的答案中标记为编辑的部分。

在最近的版本中,正如您在链接到这里的源代码中所看到的那样,它使用JVM默认值,但如果存在SSL版本,它会删除SSL版本--自2015年以来的所有Java版本都从JVM默认值中省略了SSLv3(因为它实际上被POODLE破坏了)。(SSLv2Hello并不是一个实际的协议版本,它甚至在更早的时候就被删除了。)

要使用TLSV1.3,您需要一个支持它的Java版本:11up或8U261 up,或者任何非荒谬的Java版本,其中安装并配置了足够多的最新版本的BouncyCastle的BCTLS,而不是或至少在JSSE之前--当然还有一个支持它的服务器。Javamail只是将这个设置作为一组字符串传递给JSSE或BCTLS,它不需要针对不同版本的TLS(包括1.3)编写新代码。

 类似资料:
  • 我的应用程序使用WebViewClient与服务器建立SSL连接。服务器配置为仅接受TLSV1.1及以上协议。 我的应用程序还使用HttpClient和HttpsUrlConnection类来设置SSL连接。在使用这些类时,我能够使用SSLSocket API来启用特定的协议。http://developer.android.com/reference/javax/net/ssl/sslsocke

  • 您可以在为设置时指定JavaMail是否发出协议级跟踪(通过将属性设置为),或者在进行存储连接之前调用。 有一个方法。它确实允许您暂时关闭协议跟踪输出。许多IMAP auth方法使用它来将您的凭据排除在日志文件之外。但是是,因此不能从常规用户代码调用。 是否有其他方法可以暂时关闭IMAP协议跟踪?(我宁愿暂时只关闭日志记录,但我也不介意禁用所有日志记录。)是否需要编写并注册整个协议子类,以便访问?

  • 如何定制协议 实际上制定自己的协议是比较简单的事情。简单的协议一般包含两部分: 区分数据边界的标识 数据格式定义 一个例子 协议定义 这里假设区分数据边界的标识为换行符”\n”(注意请求数据本身内部不能包含换行符),数据格式为Json,例如下面是一个符合这个规则的请求包。 {"type":"message","content":"hello"}   注意上面的请求数据末尾有一个换行字符(在PHP中

  • 问题内容: 我有一个jtable。(表格摘要)。其中一列是EXPIRY。我想用当前日期已经过期的客户端突出显示该行。 我已经掌握了逻辑,但是我无法使行变成红色或任何其他颜色。这是我的代码: 谁能帮我这个?因为它是我界面的主要亮点之一。提前致谢 !!:) 问题答案: 在以下链接中,您可以找到要执行的操作的示例:http : //www.roseindia.net/java/example/java/

  • 大家好,我正在尝试使用JavaMail和Amazon SES发送电子邮件,这是我写的代码, 但我有个例外说, 线程“main”javax中出现异常。邮政SendFailedException:无法发送电子邮件;嵌套的例外是:com。亚马逊。服务。简单邮件。模型MessageRejectedException:未验证电子邮件地址。以下身份未通过US-EAST-1区域的登记 我没有得到任何解决方案,s

  • 消息收件人用户或GroupChat id的整数唯一标识符