Android JavaMail应用程序 - CertPathValidatorException:未找到证书路径的信任锚

时间:2014-10-20 16:31:20

标签: android ssl javamail imap

请在复制之前阅读我的问题。 使用自签名证书时,我已经阅读了许多有关此错误的问题和答案。但是,我的问题是我在尝试连接到GMAIL imap服务器时遇到此错误。所以,我真的需要一些帮助。我的代码是:

private String[] ReadMailbox(String MailboxName) throws IOException {
    Properties props = new Properties();
    props.setProperty("mail.store.protocol", "imaps");
    props.setProperty("mail.imaps.port", "993");
    List<String> FromAddressArrList = new ArrayList<String>();

    props.setProperty("mail.store.protocol", "imaps");
    try {
        Session session = Session.getInstance(props, null);
        Store store = session.getStore();
        store.connect("imap.gmail.com", "username", "password");
        ActiveMailbox = store.getFolder(MailboxName);
        ActiveMailbox.open(Folder.READ_ONLY);
        Message[] messages = ActiveMailbox.getMessages();
        for (int i = 0; i < messages.length; i++) {
            Message message = messages[i];
            Address[] from = message.getFrom();
            FromAddressArrList.add(from[0].toString());
        }
        //ActiveMailbox.close(true);
        store.close();
    } catch (NoSuchProviderException e) {
        FromAddressArrList.add(e.toString());
    } catch (MessagingException e) {
        FromAddressArrList.add(e.toString());
    }
    String[] FromAddressArr = new String[FromAddressArrList.size()];
    FromAddressArrList.toArray(FromAddressArr);
    return FromAddressArr;
}

我收到此错误消息:

  

javax.mail.MessagingException:java.security.cert.CertPathValidatorException:找不到证书路径的信任锚。嵌套异常是:javax.net.ssl.SSLHandshakeException:java.security.cert.CertPathValidatorException:找不到证书路径的信任锚。

现在,我现在可以在涉及自签名证书时发生这种情况,但为什么在尝试连接到GMAIL时会收到此消息?你能帮助我让我的申请工作吗?

2 个答案:

答案 0 :(得分:3)

可能有防火墙或防病毒或代理程序拦截您连接到邮件服务器并提供其证书而非Gmail证书的请求。使用InstallCert程序查看它向您提供的证书。

另一种可能性是信任存储是空的或丢失或配置不正确,这就是它无法找到信任锚的原因。

答案 1 :(得分:0)

禁用norton智能防火墙解决了问题