public static void collectPartContent(Part part, MBMailMessage mbMailMessage) throws Exception { Object partContent = part.getContent(); String contentType = StringUtil.toLowerCase(part.getContentType()); if ((part.getDisposition() != null) && StringUtil.equalsIgnoreCase(part.getDisposition(), MimeMessage.ATTACHMENT)) { if (_log.isDebugEnabled()) { _log.debug("Processing attachment"); } byte[] bytes = null; if (partContent instanceof String) { bytes = ((String) partContent).getBytes(); } else if (partContent instanceof InputStream) { bytes = JavaMailUtil.getBytes(part); } mbMailMessage.addBytes(part.getFileName(), bytes); } else { if (partContent instanceof MimeMultipart) { MimeMultipart mimeMultipart = (MimeMultipart) partContent; collectMultipartContent(mimeMultipart, mbMailMessage); } else if (partContent instanceof String) { Map<String, Object> options = new HashMap<String, Object>(); options.put("emailPartToMBMessageBody", Boolean.TRUE); String messageBody = SanitizerUtil.sanitize( 0, 0, 0, MBMessage.class.getName(), 0, contentType, Sanitizer.MODE_ALL, (String) partContent, options); if (contentType.startsWith(ContentTypes.TEXT_HTML)) { mbMailMessage.setHtmlBody(messageBody); } else { mbMailMessage.setPlainBody(messageBody); } } } }
public static void collectPartContent(Part part, MBMailMessage mbMailMessage) throws Exception { Object partContent = part.getContent(); String contentType = part.getContentType().toLowerCase(); if ((part.getDisposition() != null) && part.getDisposition().equalsIgnoreCase(MimeMessage.ATTACHMENT)) { if (_log.isDebugEnabled()) { _log.debug("Processing attachment"); } byte[] bytes = null; if (partContent instanceof String) { bytes = ((String) partContent).getBytes(); } else if (partContent instanceof InputStream) { bytes = JavaMailUtil.getBytes(part); } mbMailMessage.addBytes(part.getFileName(), bytes); } else { if (partContent instanceof MimeMultipart) { MimeMultipart mimeMultipart = (MimeMultipart) partContent; collectMultipartContent(mimeMultipart, mbMailMessage); } else if (partContent instanceof String) { if (contentType.startsWith("text/html")) { mbMailMessage.setHtmlBody((String) partContent); } else { mbMailMessage.setPlainBody((String) partContent); } } } }