Javamail如何在没有证书验证的情况下连接到IMAPs邮件服务器
Javamail how to connect to IMAPs mail server, without certificate Validation
我正在尝试在测试环境中将我的 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 协议连接到邮件服务器,而无需检查或验证证书?
如果是,那么选择忽略证书验证不是双方的决定吗? Java应用程序和邮件服务器?
您需要在属性和 getStore 方法调用中使用相同的协议名称。因此,由于您正在设置 imaps
属性,因此您应该使用 Store s = session.getStore("imaps");
我正在尝试在测试环境中将我的 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 协议连接到邮件服务器,而无需检查或验证证书?
如果是,那么选择忽略证书验证不是双方的决定吗? Java应用程序和邮件服务器?
您需要在属性和 getStore 方法调用中使用相同的协议名称。因此,由于您正在设置 imaps
属性,因此您应该使用 Store s = session.getStore("imaps");