首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过mime4j解析电子邮件附件

通过mime4j解析电子邮件附件
EN

Stack Overflow用户
提问于 2010-04-20 22:16:13
回答 2查看 4.3K关注 0票数 6

我正在使用一个小的java smtp库(http://code.google.com/p/subethasmtp/),通过这个我需要解析传入的电子邮件在单独的组件,即主体,附件等。

我正在尝试使用mime4j,但文档显示mime4j只能提供事件通知或令牌通知,而不能提供其他通知。为了剥离主体和附件等,我不得不在事件处理程序中使用我自己的自定义逻辑。我的观察是正确的吗?

如果是,那么我如何使用mime4j来满足我的需求。请提个建议。

我非常需要一种方法,它可以接收smtp数据流,并返回给我一组附件引用或java格式的完整解析形式的流。请帮帮忙。

提前感谢

阿什什·夏尔马

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-28 16:40:44

Mime4j绝对可以做你需要的事情。创建org.apache.james.mime4j.message.SimpleContentHandler,的子类并实现bodyDecoded方法。然后将这个子类传递给一个MimeStreamParser实例。您将看到,对于每个正文或附件,bodyDecoded都被调用一次,它提供的流包含已经执行的Base64或带引号的可打印解码的数据。

如果您一般不喜欢基于事件的API,可以尝试通过org.apache.james.mime4j.message.Message类公开的更类似于DOM的功能。您可以调用Message.getBody(),然后查看它返回的是否是Multipart、TextBody、BinaryBody等的实例。如果是Multipart,则可以调用Multipart.getBodyParts来递归到子部分。

票数 10
EN

Stack Overflow用户

发布于 2011-06-08 04:02:23

@Ashish由于您使用的是SubEthaSmtp,另一个选项是执行SubEtha邮件列表管理器所做的事情:http://code.google.com/p/subetha/source/browse/trunk/src/org/subethamail/common/SubEthaMessage.java

链接类扩展了SMTPMessage,它有一堆getPart()方法。javax.mail.Part具备将附件转换为文件所需的大部分功能。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2675824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档