1.协议问题,收取邮件使用pop3协议和imap协议;pop3协议不支持使用筛选条件searchTerm,可以使用folder.getMwssage相关的几个方法可以按邮件编号做到分页取邮件的效果(之前用多线程去同步多个邮箱账号的收件箱,因为邮件对象较大并且邮件较多导致内存溢出,使服务挂掉了);imap协议可以支持部分条件筛选,例如按发件日期,但是不能精确到时分秒;具体筛选条件可以看javaMail中searchTerm相关类。
在一本讲解tcp/ip协议栈的书中看到,pop3协议只支持客户端将邮件下载到本地操作,没有支持客户端操作pop3邮件服务器的功能;但是imap对这一方面做了优化,可以简单操作imap邮件服务器。
2.使用jdk1.8的应用无法和部分邮箱连接成功,会报一个握手错误,hand什么的(这个看到就知道了),导致这个问题的原因是jdk中的security组件默认支持的是tlsv1.2,而邮件服务器用的是tlsv1的协议;将jdk中的security中两个相关jar包替换到低版本的就可以了。(但是官方建议使用tlsv1.2的协议,这个更安全,估计相关邮件服务器之后都会升级到相应版本)