2014-05-02 17 views
1

我试图从Javamail迁移到mime4j,希望解析邮件的麻烦更少。然而,我还没有设法找出如何连接到邮件服务器,然后使用mime4j来解析消息。如何连接邮件服务器以使用mime4j?

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

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

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

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

任何帮助非常感谢!

回答

0

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

如果您使用的是IMAP,则大部分解析都由服务器完成。 JavaMail仍存在哪些解析错误?他们解析电子邮件的内容时出现问题,还是解析IMAP协议消息时出现问题?

有关您遇到的问题的更多详细信息,我可能会帮助您配置JavaMail以为您工作。

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

+0

我一直在使用IMAP,但遇到使用Javamail(而不是错误)正文上使用方法时挂起。我尝试了各种建议的方法来强制解析客户端(如制作邮件的副本),但都没有成功。也许只是使用POP3会更好。刚刚尝试过Message.writeTo,它工作。我之前尝试过,但肯定误解了结果。谢谢! –

+0

挂起通常意味着您的服务器已损坏。同样,我很乐意帮助您制作JavaMail,但我需要更多关于您遇到的问题的更多细节。如果您不想在此处理,请随时通过[email protected]向我发送详细信息。 –

+0

感谢您提供帮助Bill。我将坚持你现在给予我的Mime4j解决方案。干杯! –

相关问题