java - 如何连接邮件服务器来使用mime4j?

标签 java email jakarta-mail mime4j

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

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

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

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

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

非常感谢任何帮助!

最佳答案

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

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

通过了解您遇到的问题的更多详细信息,我也许可以帮助您配置 JavaMail 以适合您。

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

关于java - 如何连接邮件服务器来使用mime4j?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23428029/

相关文章:

java - 将两个或多个数组列表合并到一个数组列表中

java - 错误: variable might not have been initialised

php - 无法使用给定的 codeigniter : parameter 1 expect to be string, 数组发送电子邮件

html - 电子邮件模板和展望

java - 来自数据库的 Spring Javamail 属性

Java Mail,发送多个附件不起作用

java - 如何实现根据用户选择返回类型的Java函数?

java - 如何制作一个特殊的 cron 作业?

php - 如何检查电子邮件是否已经发送

java - java mail api 邮件发送成功与否