在使用JavaMail实现邮件的收发功能。其中碰到了一个比较郁闷的问题,就是使用getMessageByUID能够正常接收网易邮箱的邮件,但是无论如何接收不到腾讯邮箱的邮件内容(用的是腾讯企业邮箱)。网上也没有搜索到很直接的答案,从以下的链接中找到灵感,
http://bbs.csdn.net/topics/390752838?page=1
只能是一步一步debug原代码。
改动的地方其实很简单只有一处,
修改这个类
com.sun.mail.imap.protocol.FetchResponse
//在解析腾讯邮箱的时候,要解析的字段是:* 13536 FETCH (UID 13799 ),uid的后面多加了一个空格。而javamail需要的格式是* 13536 FETCH (UID 13799)。
//所以在最后一个项目是
//} while (buffer[index] != ')');
} while (!(buffer[index] == ')' || (buffer[index] == ' ' && buffer[index + 1] == ')')));
将修改点做记录,方便其他人使用。