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

Javamail如何连接到IMAPs邮件服务器,无需证书验证

司徒浩思
2023-03-14

我试图在测试环境中将Java应用程序连接到993上的IMAP服务器邮件。

我试图忽略证书验证,使用以前对类似问题的回答中的建议,如下所示:

imapProps.put("mail.imaps.ssl.checkserveridentity", "false");
imapProps.put("mail.imaps.ssl.trust", "*");

但它似乎不起作用,我仍然有一个例外。

Cannot process current mailbox => sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
javax.mail.MessagingException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target;
  nested exception is:
    javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:727)

所以我的问题是,实际上是否有可能使用IMAPS协议连接到邮件服务器,而不必检查或验证证书?

如果是的话,选择忽略证书验证不是双方的决定吗?JavaApp和邮件服务器?

共有1个答案

诸葛柏
2023-03-14

您需要在属性和getStore方法调用中使用相同的协议名称。因此,由于您正在设置imaps属性,您应该使用Store s=session.getStore("imaps");

 类似资料:
  • 我们的应用程序可以使用Active Directory用户和组。我们在端口389上使用LDAP进行Active Directory操作。现在,我们的一个客户机希望我们添加一个使用LDAP+SSL进行Active Directory通信的选项。 他们告诉我们,他们在域上安装了一个本地CA,并对LDAP使用自签名证书。他们还告诉我们,他们会提供证书,不需要相互信任,我们应该使用Windows证书存储。

  • 我正在尝试连接到我的电子邮件服务器使用我的spring boot应用程序。当我从命令提示符telnet localhost25时,我看到下面的- 220 Microsoft ESMTP邮件服务准备就绪2016年5月18日星期三11:09:30-0400 但是,当我尝试从我的程序连接时,我看到下面的错误 原因:org.springframework.Mail.mailsendexception:邮件

  • 我正在尝试使用 javamail 连接到本地后缀鸽子服务器。我已经使用 Thunderbird 成功连接到服务器,所以我知道我的用户名和密码是正确的,但我总是得到 我所知道的唯一一件事就是改变java。禁用一些不太安全的协议。dovecot需要什么协议?还是我看错了方向。 如果这是一个协议问题,是否有任何方法可以将参数传递给编译器?我确实有其他服务,我想阻止支持禁用的协议 编辑: 这是我使用的代码

  • 错误:找不到有效的gem“rhc”( 尝试使用以下命令: 但仍然存在相同的错误时,试图设置rhc。 通过执行这些步骤,rhc gem安装成功,但是当执行“rhc设置”以连接到openshift时,这里显示的是错误消息,而不是连接到openshift服务器

  • 我已经按照文档中的说明配置了MongoDB服务器https://docs.mongodb.com/manual/core/security-x.509/我使用mongo shell连接,工作正常。 接下来,我尝试连接到相同的服务器form c#驱动程序,但引发超时异常。下面是我的代码 我通过MongoDB服务器日志,我可以看到下面的错误 2017-04-10T11:18:21.559 0530 I

  • 我试图使用以下设置创建到MYSQL服务器的ssl连接。我注意到,当我在JDBCURL中指定verifyServerCertificate=false时,Java似乎忽略了我通过系统指定的密钥库和信任库信息。setProperty。因此,我可以注释掉1)中指定的代码,ssl连接仍将成功创建。当我指定verifyServerCertificate=true时,它似乎使用1)设置的值。所以我的问题是,当