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);


问题解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值