JavaMail收取邮件返回no content错误问题的解决

今天用javamail收取imap类型的电子邮件时发现在调用msg.getContent()总是抛出例外,查找了网上,发现没有人说到这个问题,后来调试了一下源码,发现是javamail对返回的数据解析有问题,当设置fetchsize时,返回的数据格式javamail解析出错了,javamail只进行了对返回格式是  * 1 FETCH (BODY[TEXT] {148549} 的数据,如是有fetchsize(缺省是有的,所以导致我的程序出错了),则返回的是   * 1 FETCH (BODY[TEXT] {0.148549}  ,因此原因找到后,解决方式就出来了,1、更改javamail源码   2、使fetchsize(一次取数据的大小)不起作用。为了简单起见,采用了第2种处理方式,只要在开始初始化时增加mail.imap.partialfetch属性为false就行了,这个参数用来指定fetchsize起不起作用。例子:
        Properties prop = new Properties();
        prop.put("mail.imap.host", site);
        prop.put("mail.imap.partialfetch", false);
        prop.put("mail.store.protocol", "imap");
        Session session = Session.getDefaultInstance(prop);


问题解决。

你可能感兴趣的:(java javamail)