首页 > 解决方案 > 构造 MimeMessage 时出现 FolderClosedException

问题描述

我有一个应用程序,我正在从邮箱中读取电子邮件并将其转换为 MimeMessage 以进行进一步处理。但是,当邮件包含大约 40Mb 的大附件时,我遇到了一个例外。下面是我正在使用的代码。

Message[] messages = null;
Folder folder = emailServerConnection.getFolder();
messages = folder.getMessages();
List<Email> messageList = new ArrayList<>();
for (Message message : messages)
{
    try
    {
        //Below line throwing FolderClosedException
        MimeMessage mimeMessage = new MimeMessage((MimeMessage) message); 
        OutputStream outputStream = new ByteArrayOutputStream();
        mimeMessage.writeTo(outputStream);
        JavaMailEmail email = new JavaMailEmail(mimeMessage, message);
        messageList.add(email);
    }
    catch (MessagingException ex)
    {
        _loggingHelper.debug(ex, "Problem reading an email. Marking it as an email to delete.");
        message.setFlag(Flag.DELETED, true);
    }
}

仅当我的电子邮件具有大附件(40 Mb)时才会出现此问题

Exception:
javax.mail.MessagingException: IOException while copying message;
  nested exception is:
    com.sun.mail.util.FolderClosedIOException

任何帮助或指针将不胜感激。

标签: javajakarta-mailimapmime

解决方案


推荐阅读