当我从contentText中的java.mail读取电子邮件正文时,得到的是第一个纯文本,然后是该HTML文本。即如果发送消息是 模拟 模拟2 contentText将包含: 嘲笑嘲笑 模拟 模拟2 以下是我加载contentText的代码:public void setContentText(Multipart multipart) throws MessagingException, IOException { contentText =""; for (int i = 0; i < multipart.getCount(); i++) { BodyPart bodyPart = multipart.getBodyPart(i); getBodyToStringPart(bodyPart); }}protected void getBodyToStringPart(BodyPart bodyPart) throws MessagingException, IOException { String disposition = bodyPart.getDisposition(); if (!StringUtils.equalsIgnoreCase(disposition, "ATTACHMENT")) { if (bodyPart.getContent() instanceof BASE64DecoderStream && bodyPart.getHeader("Content-ID") != null) { BASE64DecoderStream base64DecoderStream = (BASE64DecoderStream) bodyPart .getContent(); byte[] byteArray = IOUtils.toByteArray(base64DecoderStream); byte[] encodeBase64 = Base64.encodeBase64(byteArray); this.contentText = this.contentText.replaceAll( "cid:" + bodyPart.getHeader("Content-ID")[0].replaceAll(">", "") .replaceAll("<", ""), "data:" + bodyPart.getContentType() + ";base64," + new String(encodeBase64, "UTF-8")); } else if (bodyPart.getContent() instanceof MimeMultipart) { MimeMultipart mimeMultipart = (MimeMultipart) bodyPart.getContent(); for (int j = 0; j < mimeMultipart.getCount(); j++) { getBodyToStringPart(mimeMultipart.getBodyPart(j)); } } else { this.contentText += bodyPart.getContent() + ""; } } else { // TODO: Do we need attachments ? }} (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 This JavaMail FAQ entry可能会有所帮助。 (adsbygoogle = window.adsbygoogle || []).push({});
09-11 18:12