/** * @param emailMessage {@link EmailMessage} with data. * @param attachments {@link List} of {@link EmailAttachment}s. * @return new {@link MimeBodyPart} with data from emailMessage and attachments. * @throws MessagingException if there is a failure. */ private MimeBodyPart getBodyPart(final EmailMessage emailMessage, final List<EmailAttachment<? extends DataSource>> attachments) throws MessagingException { final MimeBodyPart bodyPart = new MimeBodyPart(); // detect embedded attachments final List<EmailAttachment<? extends DataSource>> embeddedAttachments = filterEmbeddedAttachments(attachments, emailMessage); if (embeddedAttachments.isEmpty()) { // no embedded attachments, just add message setContent(emailMessage, bodyPart); } else { attachments.removeAll(embeddedAttachments); // embedded attachments detected, join them as related final MimeMultipart relatedMultipart = new MimeMultipart(RELATED); final MimeBodyPart messageData = new MimeBodyPart(); setContent(emailMessage, messageData); relatedMultipart.addBodyPart(messageData); addAnyAttachments(embeddedAttachments, relatedMultipart); bodyPart.setContent(relatedMultipart); } return bodyPart; }
/** * @param emailMessage {@link EmailMessage} with data. * @param attachments {@link List} of {@link EmailAttachment}s. * @return new {@link MimeBodyPart} with data from emailMessage and attachments. * @throws MessagingException if there is a failure. */ private MimeBodyPart getBodyPart(final EmailMessage emailMessage, final List<EmailAttachment<? extends DataSource>> attachments) throws MessagingException { final MimeBodyPart bodyPart = new MimeBodyPart(); // detect embedded attachments final List<EmailAttachment<? extends DataSource>> embeddedAttachments = filterEmbeddedAttachments(attachments, emailMessage); if (embeddedAttachments.isEmpty()) { // no embedded attachments, just add message setContent(emailMessage, bodyPart); } else { attachments.removeAll(embeddedAttachments); // embedded attachments detected, join them as related final MimeMultipart relatedMultipart = new MimeMultipart(RELATED); final MimeBodyPart messageData = new MimeBodyPart(); setContent(emailMessage, messageData); relatedMultipart.addBodyPart(messageData); addAnyAttachments(embeddedAttachments, relatedMultipart); bodyPart.setContent(relatedMultipart); } return bodyPart; }