我不是在编写邮件应用程序,所以我无权访问所有标题等。我所拥有的只是这个问题末尾的 block 。我试过使用 JavaMail API 来解析它,使用类似
Session s = Session.getDefaultInstance(new Properties());
InputStream is = new ByteArrayInputStream(<< String to parse >>);
MimeMessage message = new MimeMessage(s, is);
Multipart multipart = (Multipart) message.getContent();
但是,它只是告诉我 message.getContent 是一个字符串,而不是 Multipart 或 MimeMultipart。另外,我真的不需要整个 JavaMail API 的所有开销,我只需要将文本解析成它的部分。这是一个例子:
This is a multi-part message in MIME format.\n\n------=_NextPart_000_005D_01CC73D5.3BA43FB0\nContent-Type: text/plain;\n\tcharset="iso-8859-1"\nContent-Transfer-Encoding: quoted-printable\n\nStuff:\n\n Please read this stuff at the beginning of each week. =\nFeel free to discuss it throughout the week.\n\n\n--=20\n\nMrs. Suzy M. Smith\n555-555-5555\nsuzy@suzy.com\n------=_NextPart_000_005D_01CC73D5.3BA43FB0\nContent-Type: text/html;\n\tcharset="iso-8859-1"\nContent-Transfer-Encoding: quoted-printable\n\n\n\n\n\n\n\n\n\nStuff:\n =20\nPlease read this stuff at the beginning of each =\nweek. Feel=20\nfree to discuss it throughout the week.\n
--
Mrs. Suzy M. Smith
555-555-5555
suzy@suzy.com\n\n------=_NextPart_000_005D_01CC73D5.3BA43FB0--\n\n
最佳答案
首先,我采用了您的示例消息,并将所有出现的 \n
替换为换行符,将 \t
替换为制表符。
然后我从 Mime4J 下载了 JAR项目,子项目 Apache James , 并执行 GUI 解析 example org.apache.james.mime4j.samples.tree.MessageTree
将上面转换后的消息作为输入。显然 Mime4J 能够解析消息并提取 HTML 消息部分。
关于java - 无法在 Java 中解析此多部分 MIME 消息正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7677759/