public static void collectPartContent(Part part, MBMailMessage collector) 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); } collector.addFile(part.getFileName(), bytes); } else { if (partContent instanceof MimeMultipart) { collectMultipartContent((MimeMultipart) partContent, collector); } else if (partContent instanceof String) { if (contentType.startsWith("text/html")) { collector.setHtmlBody((String) partContent); } else { collector.setPlainBody((String) partContent); } } } }