Javamail pop3连接QQ邮箱遇到最深的坑

本文介绍了解决使用POP3协议连接QQ邮箱时出现的SSL安全连接问题的方法。通过设置正确的端口号995,并配置MailSSLSocketFactory来信任所有主机,成功解决了Loginfail错误及UnrecognizedSSLmessage问题。

在使用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?

这时偶然看见

1506270-20190408231938219-1758307268.png

所以修改自己的端口为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); //打开收件箱

转载于:https://www.cnblogs.com/badassboy/p/10674296.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值