有没有人有Javamail javax.mail.FolderClosedException
的经验?
我的问题是:
我想读一些邮件,一切都好。但我已经将我的读者课程改为更技术性的课程,只获得了Message
个对象。
第二步我想制作豆子。获取主题等信息非常简单:
public void getMail(Message msg) {
subject = msg.getSubject();
...
}
此处的主要问题:msg.getContent
需要打开的文件夹...
但我的技术读者类获取所有消息对象,关闭文件夹...
之后我的业务方法getMail
执行msg.getContent
是否有可能以这种方式使用业务类和技术类,或者我是否必须在技术类中设置邮件bean并返回它们的列表?!
答案 0 :(得分:2)
您的问题似乎是getContent()
将从服务器加载内容,因为JavaMail实现通常在您实际需要时首先开始下载所请求的信息,例如:致电getContent()
。
在将内容移交给您的业务代码之前,您可以强制下载所有内容。因此,您可以直接从技术类获取消息对象,而不是直接移交消息对象。这会强制JavaMail类使用例如IMAP连接以完全下载您的消息:
/* assuming you retrieved 'message' from your folder object */
Message copyOfMessage = new MimeMessage( (MimeMessage) message );
[..]
folder.close();
[..]
yourBusinessObject.getMail( copyOfMessage );
但我必须承认,在关闭文件夹后,我从未尝试访问复制的对象。并且从未在POP3中使用过它。但我会尝试一下。
答案 1 :(得分:1)
如果仅传递您需要的内容而不是Message
实例?像
public void getMail(String subject, Object content, ...) {
...
}
当然它不像以前那么干净,但可能会做到这一点;)
PS:Fürd'IPA,还是hesch死了吗?