如何通过SSL与自定义TrustManager连接到POP3服务器?

时间:2013-01-31 08:42:48

标签: java ssl ssl-certificate pop3 javax.mail

我正在为电子邮件发件人类编写测试,我需要能够通过从目标POP3服务器下载来检查邮件是否到达。服务器是Exchange服务器,只能通过SSL连接。测试将定期在CI服务器上运行,因此无法进行正确的认证过程。据我所知,可以创建一个可以接受任何证书的自定义TrustManager类。如何告诉我的POP3连接使用我的自定义TrustManager? 在目前的代码形式中,我无法看到任何方式:

    String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

    Properties pop3Props = new Properties();

    pop3Props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
    pop3Props.setProperty("mail.pop3.socketFactory.fallback", "false");
    pop3Props.setProperty("mail.pop3.port", "995");
    pop3Props.setProperty("mail.pop3.socketFactory.port", "995");

    URLName url = new URLName(provider, host, 995, "",
            username, password);

    Session session = Session.getInstance(pop3Props, null);
    Store store = new POP3SSLStore(session, url);
    store.connect();

1 个答案:

答案 0 :(得分:1)

你真的需要信任经理吗?

您也可以将证书导入jdk cacerts文件,然后默认的TrustManager将接受您的网站的ssl连接。

您可以在此处获得有关如何导入服务器证书的链接:

http://javarevisited.blogspot.com/2012/03/add-list-certficates-java-keystore.html