1

我正在尝试从 Javamail 迁移到 mime4j,希望能减少解析邮件的麻烦。但是我还没有设法找出如何连接到邮件服务器然后使用 mime4j 来解析邮件。

Javamail 通过 IMAP 或 POP3 提供与邮件服务器的会话和连接,然后您可以从中读取消息。据我所知,mime4j 没有提供任何等效的东西。

那么如何连接到邮件服务器以使用 mime4j?我可以将 Javamail 与 mime4j 结合使用吗?

我尝试使用 javamailMessage.getInputStream方法获取传递给 mime4j 的输入流DefaultMessageBuilder.parseMessage。但是结果不是我所期望的:对于包含纯文本部分和 html 部分的多部分消息,只创建了一个 TextBody。我怀疑这是因为DefaultMessageBuilder.parseMessage期望整个消息的流,而不仅仅是正文,而且 javamailMessage.getInputStream只提供正文。

事实上,我只对正文感兴趣,因为这是导致 Javamail 出现问题的原因,但是解析整个消息(如果我可以将它作为 Javamail 的输入流)也可以。

非常感谢任何帮助!

4

1 回答 1

0

如果您使用 POP3,则所有消息解析都发生在 JavaMail 的客户端。您是否查看过可以在 JavaMail 中设置的许多属性来配置如何处理解析错误?

如果您使用 IMAP,则大部分解析由服务器完成。您在使用 JavaMail 时仍然遇到什么样的解析错误?它们是解析电子邮件内容的问题,还是解析 IMAP 协议消息的问题?

有了您遇到的问题的更多详细信息,我也许可以帮助您配置 JavaMail 以供您使用。

如果您真的想使用另一个 MIME 消息解析器,则需要使用 Message.writeTo 方法来获取消息的整个 MIME 内容,您可以将其传递给其他库进行解析。

于 2014-05-02T19:22:59.877 回答