使用Java mail 工具实现
获取各大平台邮箱系统中的收件箱发件箱
~
~
配置邮箱授权码
配置邮箱授权码
~
~
走过的坎
1.刚开始的时候每次进行同步获取的时候都会获取到所有的邮件,需要等待的时长特别的长,每次都需要好几分钟,后面想到一个方案就是把获取到的邮件保存到数据库中,每次获取的时候都从数据库中获取邮件信息,这样会特别的迅速,但这样也会引发不能实时获取到信息,最后使用了spring定时任务来每隔一段时间就去同步一次邮箱数据,至此解决。
解决方案
1.获取到当前邮箱号所有的邮件信息
2.配置ReciveMail邮件对象
3.获取到当前邮箱在平台系统中的最新所有邮箱的uid,然后对比从数据库中获取到得uid进行比对,筛选出数据库中不存在得uid(uid是每个邮箱中每封邮件得唯一标识),java mail获取所有uid不需要获取其他得邮件信息,获取得数据非常快,然后通过筛选出得uid获取对应得邮件信息,后保存到数据库中。
4.筛选获取所有数据库中不存在得uid
5.根据uid获取对应得邮箱信息
6.把集合转化为一个线程安全得集合,在使用并行流来进行一个异步得获取保存数据,
在通过阻塞队列来保证所有得数据都获取完毕后,才能进行下一步得操作,进行返回
7.获取到所有数据后在保存到数据库中