/** * Create a copy of the given message */ public JPAMailboxMessage(JPAMailbox mailbox, MessageUid uid, long modSeq, MailboxMessage message) throws MailboxException { super(mailbox, uid, modSeq, message); try { this.body = IOUtils.toByteArray(message.getBodyContent()); this.header = IOUtils.toByteArray(message.getHeaderContent()); } catch (IOException e) { throw new MailboxException("Unable to parse message",e); } }
/** * Create a copy of the given message */ public JPAEncryptedMailboxMessage(JPAMailbox mailbox, MessageUid uid, long modSeq, MailboxMessage message) throws MailboxException { super(mailbox, uid, modSeq, message); try { this.body = IOUtils.toByteArray(message.getBodyContent()); this.header = IOUtils.toByteArray(message.getHeaderContent()); } catch (IOException e) { throw new MailboxException("Unable to parse message",e); } }
private CompletableFuture<Pair<BlobId, BlobId>> saveContent(MailboxMessage message) throws MailboxException { try { byte[] headerContent = IOUtils.toByteArray(message.getHeaderContent()); byte[] bodyContent = IOUtils.toByteArray(message.getBodyContent()); return CompletableFutureUtil.combine( blobStore.save(headerContent), blobStore.save(bodyContent), Pair::of); } catch (IOException e) { throw new MailboxException("Error saving mail content", e); } }
parser.parse(document.getHeaderContent()); } catch (MimeException e) { throw new IOException("Unable to parse headers of message " + document, e);
public ImmutableMailboxMessage from(MailboxId mailboxId, MailboxMessage message) throws MailboxException { try { return new ImmutableMailboxMessage(message.getMessageId(), message.getInternalDate(), IOUtils.toByteArray(message.getBodyContent()), message.getMediaType(), message.getSubType(), message.getBodyOctets(), message.getFullContentOctets(), message.getFullContentOctets() - message.getBodyOctets(), message.getTextualLineCount(), IOUtils.toByteArray(message.getHeaderContent()), ImmutableList.copyOf(message.getProperties()), attachments(message), mailboxId, message.getUid(), message.getModSeq(), message.isAnswered(), message.isDeleted(), message.isDraft(), message.isFlagged(), message.isRecent(), message.isSeen(), message.createFlags().getUserFlags()); } catch (IOException e) { throw new MailboxException("Unable to parse message", e); } }
private HeaderImpl buildTextHeaders(MailboxMessage message) throws IOException, MimeIOException { DefaultMessageBuilder defaultMessageBuilder = new DefaultMessageBuilder(); defaultMessageBuilder.setMimeEntityConfig(MimeConfig.PERMISSIVE); Message headersMessage = defaultMessageBuilder .parseMessage(message.getHeaderContent()); HeaderImpl headerImpl = new HeaderImpl(); addFrom(headerImpl, headersMessage.getFrom()); addAddressList(headerImpl, headersMessage.getTo()); addAddressList(headerImpl, headersMessage.getCc()); addAddressList(headerImpl, headersMessage.getBcc()); headerImpl.addField(Fields.subject(headersMessage.getSubject())); return headerImpl; }