我正试图从Javamail迁移到mime4j,希望能减少解析邮件的麻烦。但是,我还没有找到如何连接到邮件服务器,然后使用mime4j解析消息。
Javamail通过IMAP或POP3提供会话和与邮件服务器的连接,然后从它们读取消息。据我所知,mime4j没有提供任何类似的东西。
那么,如何连接到邮件服务器以使用mime4j呢?我可以和mime4j一起使用Javamail吗?
我尝试使用javamail Message.getInputStream方法获得一个输入流,然后传递给mime4j的DefaultMessageBuilder.parseMessage。但是,结果不是我所期望的:对于包含纯文本部分和html部分的多部分消息,只创建一个TextBody。我怀疑这是因为DefaultMessageBuilder.parseMessage期待的是整个消息的流,而不仅仅是主体,而且javamail Message.getInputStream只提供主体。
事实上,我只对这个主体感兴趣,因为这是导致Javamail出现问题的原因,但是解析整个消息(如果我可以将其作为Javamail的输入流)也会有同样的效果。
任何帮助都非常感谢!
发布于 2014-05-02 19:22:59
如果使用POP3,则所有消息解析都发生在JavaMail的客户端。您看过可以在JavaMail中设置的许多属性来配置如何处理解析错误吗?
如果您使用的是IMAP,那么大部分解析都是由服务器完成的。您在使用JavaMail时仍然存在什么类型的解析错误?它们是解析电子邮件内容的问题,还是解析IMAP协议消息的问题?
关于您遇到的问题的更多细节,我可能可以帮助您配置JavaMail来为您工作。
如果您真的想使用另一个MIME消息解析器,则需要使用Message.writeTo方法获取消息的整个MIME内容,可以将其传递给其他库进行解析。
https://stackoverflow.com/questions/23428029
复制相似问题