@Override public Iterator<Header> headers() throws MailboxException { return result.getHeaders().headers(); }
@Override public InputStream getInputStream() throws IOException { try { return result.getHeaders().getInputStream(); } catch (MailboxException e) { throw new IOException("Unable to retrieve content", e); } }
@Override public long size() throws MailboxException { return result.getHeaders().size(); }
public void updateReferences(Headers headers, MailboxSession session) throws MailboxException { Map<String, String> headersAsMap = Iterators.toStream(headers.headers()) .collect(Guavate.toImmutableMap(Header::getName, Header::getValue)); updateReferences(headersAsMap, session); }
@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 Iterator<MessageResult.Header> getHeaders(MessageResult messageResult, int[] path, boolean isBase) throws MailboxException { final Iterator<MessageResult.Header> headers; if (isBase) { headers = messageResult.getHeaders().headers(); } else { MessageResult.MimePath mimePath = new MimePathImpl(path); headers = messageResult.iterateHeaders(mimePath); } return headers; }
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()); }
private Iterator<MessageResult.Header> getHeaders(final MessageResult messageResult, final int[] path, final boolean isBase) throws MailboxException { final Iterator<MessageResult.Header> headers; if (isBase) { headers = messageResult.getHeaders().headers(); } else { MessageResult.MimePath mimePath = new MimePathImpl(path); headers = messageResult.iterateHeaders(mimePath); } return headers; }
private String headerValue(Headers message, String headerName) throws MailboxException { final MessageResult.Header header = MessageResultUtils.getMatching(headerName, message.headers()); final String result; if (header == null) { result = null; } else { final String value = header.getValue(); if (value == null || "".equals(value)) { result = null; } else { // ENVELOPE header values must be unfolded // See IMAP-269 // // // IMAP-Servers are advised to also replace tabs with single spaces while doing the unfolding. This is what javamails // unfold does. mime4j's unfold does strictly follow the rfc and so preserve them // // See IMAP-327 and https://mailman2.u.washington.edu/mailman/htdig/imap-protocol/2010-July/001271.html result = MimeUtility.unfold(value); } } return result; }
private String headerValue(final Headers message, final String headerName) throws MailboxException { final MessageResult.Header header = MessageResultUtils.getMatching(headerName, message.headers()); final String result; if (header == null) { result = null; } else { final String value = header.getValue(); if (value == null || "".equals(value)) { result = null; } else { // ENVELOPE header values must be unfolded // See IMAP-269 // // // IMAP-Servers are advised to also replace tabs with single spaces while doing the unfolding. This is what javamails // unfold does. mime4j's unfold does strictly follow the rfc and so preserve them // // See IMAP-327 and https://mailman2.u.washington.edu/mailman/htdig/imap-protocol/2010-July/001271.html result = MimeUtility.unfold(value); } } return result; }
final MessageResult.Header header = MessageResultUtils.getMatching(headerName, message.headers()); FetchResponse.Envelope.Address[] results; if (header == null) {
final MessageResult.Header header = MessageResultUtils.getMatching(headerName, message.headers()); FetchResponse.Envelope.Address[] results; if (header == null) {