如何从 Java 中的 MimeMessage 电子邮件中检索正文

Posted

技术标签:

【中文标题】如何从 Java 中的 MimeMessage 电子邮件中检索正文【英文标题】:How to retrieve the body from a MimeMessage email in Java 【发布时间】:2015-03-29 04:16:00 【问题描述】:

我正在尝试获取 MIMEMessage 的正文内容。电子邮件本质上是一个保存为文本文件的 .EML 文件。然后下面的代码将其转换为 MIMEMessage

        InputStream mailFileInputStream = new FileInputStream(emailFile);
        Properties props = new Properties();
        Session session = Session.getDefaultInstance(props, null);
        MimeMessage message = new MimeMessage(session, mailFileInputStream);

但是,当我尝试使用 MimeMessageParser 解析并获取单独的部分时,我可以获取除 html 内容之外的所有内容,代码如下:

        MimeMessageParser parser = new MimeMessageParser(message);
        String from = parser.getFrom();
        List<Address> to = parser.getTo();
        List<Address> cc = parser.getCc();
        List<Address> bcc = parser.getBcc();
        String subject = parser.getSubject();
        String htmlContent = parser.getHtmlContent(); // Doesnt work

我错过了解析中的一步还是有更简单的方法来检索正文?

【问题讨论】:

【参考方案1】:

我发现了解决方案。您必须先使用以下行来解析解析器:

parser.parse().getHtmlContent();

这会检索电子邮件的头部和正文。有用的来源是隐藏在互联网深处的日本网站:) http://www.cnblogs.com/jiaoyiping/p/3761560.html

【讨论】:

以上是关于如何从 Java 中的 MimeMessage 电子邮件中检索正文的主要内容,如果未能解决你的问题,请参考以下文章

从 MimeMessage 转换为字节数组

如何序列化 Mimemessage 实例?

smtp / c# - 使用MimeMessage实例时如何设置回复电子邮件地址

MimeMessage 获取附件名称

来自 Gmail API 流的 MimeMessage.Load

使用现有的 MimeMessage 对象创建 MimeMessagePreparator