1. 程式人生 > >Javamail pop3連接QQ郵箱遇到最深的坑

Javamail pop3連接QQ郵箱遇到最深的坑

gets 郵箱 為什麽 class 圖片 code store 錯誤 ssa

在使用pop3郵箱連接QQ郵箱接受郵件的時候遇到如下錯誤

Login fail. A secure connection is requiered(such as ssl)

此時按照錯誤提示添加如下配置

MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
props.put("mail.pop3.ssl.enable",true);
props.put("mail.pop3.ssl.socketFactory",sf);

然而又出現了

Unrecognized SSL message, plaintext connection?

這時偶然看見

技術分享圖片

所以修改自己的端口為995即可,不知道為什麽網上這麽多博客寫的都是110,找了好久的錯(163的郵箱端口110可以使用)。

以下是全部的連接配置

Properties props = new Properties();
props.setProperty("mail.popStore.protocol", "pop3");       // 使用pop3協議
props.setProperty("mail.pop3.port", "995");           // 端口

MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
props.put("mail.pop3.ssl.enable",true);
props.put("mail.pop3.ssl.socketFactory",sf);

//props.setProperty("mail.debug", "true");
props.setProperty("mail.pop3.host", "pop.qq.com");

Session session = Session.getInstance(props);
pop3Store = (POP3Store) session.getStore("pop3");
pop3Store.connect("pop.qq.com", 995, user, password);
pop3Folder = (POP3Folder) pop3Store.getFolder("INBOX");
/* Folder.READ_ONLY:只讀權限
         * Folder.READ_WRITE:可讀可寫(可以修改郵件的狀態)
         */
pop3Folder.open(Folder.READ_WRITE); //打開收件箱

Javamail pop3連接QQ郵箱遇到最深的坑