@Override public InputStream getInputStream() throws IOException { try { return result.getHeaders().getInputStream(); } catch (MailboxException e) { throw new IOException("Unable to retrieve content", e); } }
@Override public InputStream getMessageHeaders(String uid) throws IOException { try { mailboxManager.startProcessingRequest(session); Iterator<MessageResult> results = manager.getMessages(MessageUid.of(Long.valueOf(uid)).toRange(), HEADERS_GROUP, session); if (results.hasNext()) { return results.next().getHeaders().getInputStream(); } else { return null; } } catch (MailboxException e) { throw new IOException("Unable to retrieve message header for uid " + uid, e); } finally { mailboxManager.endProcessingRequest(session); } }
private Message retrieveOriginalMessage(JmapMDN mdn, MailboxSession mailboxSession) throws MailboxException, IOException, MessageNotFoundException { List<MessageResult> messages = messageIdManager.getMessages(ImmutableList.of(mdn.getMessageId()), FetchGroupImpl.HEADERS, mailboxSession); if (messages.size() == 0) { throw new MessageNotFoundException(); } DefaultMessageBuilder messageBuilder = new DefaultMessageBuilder(); messageBuilder.setMimeEntityConfig(MimeConfig.PERMISSIVE); messageBuilder.setDecodeMonitor(DecodeMonitor.SILENT); return messageBuilder.parseMessage(messages.get(0).getHeaders().getInputStream()); }