寻求解决方案。 java mail处理邮件遇到的问题
java mail处理邮件遇到的问题
利用java mail接收处理收件箱中的邮件,大约有40万邮件
判断是否退信,如是退信,记录所发往的mail地址到DB,并对mail地址进行
判断,若相同mail地址2次收到退信,db中count值增加1
问题描述:
功能基本已经实现,程序大约在处理到有1万封邮件的时候
出现 Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
寻求解决方案。
设置jvm最大内存 不可以彻底解决问题,只是暂时增加了 邮件处理的数目
1 楼 Godlikeme 2007-04-09 Hashmap缓存需要处理的信件信息,而不是所有信件对象。
如 退信地址列表,
2 楼 weiqingfei 2007-04-09 你不会是一下子把所有信件都收回来处理了吧。 3 楼 Godlikeme 2007-04-09 看样子是这样子的。。。 4 楼 rainlife 2007-04-09 我提一个问题,对于收件箱中的邮件,如果是退信,是否会有一个标识字段,说明这是封退信?如果有的话,根本不需要全部收回处理,而只要处理具有退信标识的邮件即可。 5 楼 Godlikeme 2007-04-09 应该是有一个字段,但应该是封装在一个对象里的, 6 楼 rainlife 2007-04-09 Godlikeme 写道应该是有一个字段,但应该是封装在一个对象里的,
我也是这样觉得的。 7 楼 weiqingfei 2007-04-10 rainlife 写道我提一个问题,对于收件箱中的邮件,如果是退信,是否会有一个标识字段,说明这是封退信?如果有的话,根本不需要全部收回处理,而只要处理具有退信标识的邮件即可。
用的是imap,还是pop3?
如果是pop3的话,只能把信的全部内容都收回来。
但是如果是imap的话,需要什么就收回什么。
但是最重要的是,不要一下子把所有信件都收回来处理。