前言
最近突发奇想,想做一个个人的邮件爬虫,分析自己订阅的信息(技术订阅,信用卡账单等)。为了找到更好的解决方案,就提前复习了一下关于Mail收发协议的一些知识。同时在JavaMail之上封装了一个类库,结合网易邮箱做了一系列的测试,于是就有了接下来的内容。本文主要围绕网易邮箱设置的限制展开。
本来,如果使用POP3进行文件的收取,就还是蛮顺利的。可是POP3的缺点非常明显,不能定向收取指定文件夹中的邮件,这个缺点明显不符合需求,所以果断放弃,选择使用IMAP进行收取。
因为IMAP能够操作的功能比较多,也被各大邮件服务提供商做了安全限制,网易也不例外,所以就有了以下问题。
问题
- 问题一:NO Select Unsafe Login. Please contact kefu
这个问题往往伴随以下这个邮件
,刚开是以为是因为没有给邮箱设置安全密码(第三方登陆单独使用密码),可是设置后仍然无效
最后查出的问题,这个问题是网易邮箱所特有的,原因在于,网易为了推广自身产品-网易邮箱大师,所以拦截了其他第三方请求。
解决方案: 通过这个地址,阅读网易的安全协议,表示同意承担信息丢失的风险后,网易就会开发IMAP的协议接口了。
- 问题二:邮件数量限制,日期限制
正式开始测试后,总是发现收取的邮件数目不对。主要反映为两点,1、返回的邮件数目和在网页查看的邮件数目对不上,2、有部分很久前存在的文件夹,一直收取不到邮件,但是也不报错。
解决方案:网易默认限制了客户端只能够收取近30天内的邮件,需要通过设置,将权限放开。
TIPS
国内常用邮件服务商对IMAP的支持
- 126/163:允许通过IMAP获取自定义的文件夹,但是需要开通授权
- QQ :只允许获取QQ定义的文件夹,自定义无法获取
- coremail : 支持获取自定义文件夹,无需授权