lib 1002510 // jsoup static S mail_getText(Message message) ctex { fixContextClassLoader(); S result = ""; if (message.isMimeType("text/plain")) { result = message.getContent().toString(); } else if (message.isMimeType("multipart/*")) { MimeMultipart mimeMultipart = (MimeMultipart) message.getContent(); result = mail_getText_fromMimeMultipart(mimeMultipart); } ret result; } static S mail_getText_fromMimeMultipart(MimeMultipart mimeMultipart) ctex { S result = ""; int count = mimeMultipart.getCount(); for (int i = 0; i < count; i++) { BodyPart bodyPart = mimeMultipart.getBodyPart(i); if (bodyPart.isMimeType("text/plain")) { result = result + "\n" + bodyPart.getContent(); break; // without break same text appears twice in my tests } else if (bodyPart.isMimeType("text/html")) { String html = (String) bodyPart.getContent(); result = result + "\n[from HTML]\n" + org.jsoup.Jsoup.parse(html).text(); } else if (bodyPart.getContent() instanceof MimeMultipart){ result = result + mail_getText_fromMimeMultipart((MimeMultipart)bodyPart.getContent()); } } ret result; }