问题标签 [mime4j]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
3315 浏览

java - 在java中解析mbox文件

我从 下载了一个邮件列表存档SourceForge。每个邮件列表都会自动归档到 mbox 文件中。所以现在我需要从mbox fileusing中提取身体Java。里面有mailbox parserJava

谢谢

0 投票
1 回答
903 浏览

java - 在 Java 中解析 MIME 发件人 (RFC 822)

MIME 消息发件人以如下格式显示:

我试图弄清楚如何在上述示例中提取字符串“johndoe@gmail.com”,尽管我还需要“johndoe”和“gmail.com”部分(根据 RFC,我很确定要拆分@就是这里所需要的)。显然,对我自己的解析器进行正则表达式是一种(不是很好)的选择。

似乎这可能使用javax.mail.internet.MimeMessage. 所有的构造函数都需要一个Folder我没有的(嗯,我有点做,它存在于 IMAP 层中),例如

这让我觉得我用错了这个类。尽管如此,如果我以这种方式解析,我确实可以访问getFrom()返回数组的方法,该数组Address本身并没有为我提供使用方法。

使用 mime4j 很容易做到这一点:

因此,使用 mime4j 或使用 java、javax 等实用程序应该可以从那里提取地址的“a@b.com”部分,但我还没有在 javax 或 mime4j 中找到负责这个的类.

0 投票
2 回答
2375 浏览

java - 使用 mime4j 检索电子邮件附件文件名

我正在尝试使用 mime4j 解析电子邮件,一切正常,但是我无法获取附件的文件名。不幸的是,BodyDescriptor没有在内容处置或内容类型字段中包含此信息。

我已经读过MaximalBodyDescriptor将包含文件名,但是我不知道如何告诉解析器返回一个 MaximalBodyDescriptor 对象。

我的处理程序正在实现ContentHandler接口。我看不到可以工作的替代界面。

任何建议表示赞赏。

0 投票
2 回答
4967 浏览

email - 使用 mime4j 解析电子邮件

使用 mime4j 解析电子邮件时遇到问题。电子邮件有一个附件,我使用 MimeStreamParser 来解析它。解析器根本不调用 startMultipart 方法。相反,它只调用一次 body 方法,并且 BodyDescriptor 是“text/plain”。

我不知道这个问题的根源,电子邮件格式还是我的程序?

这是我的测试程序:

这是我的电子邮件文件的一部分:

0 投票
0 回答
159 浏览

java - 用于加密的多部分编码

我正在使用 Mime4J 对消息进行 mime 编码。我有一个文本部分和附件,我将它们添加到 MultipartImpl 对象中。

我的问题是:我能找到的所有示例都涉及将 MultipartImpl 对象附加到 MessageImpl 对象,以便通过电子邮件发送。但我不想这样做。我只是想加密多部分文本本身。我尝试使用以下内容:

但这给了我以下错误:

因为 MessageWriter 期望 Multipart 有一个父级。

有没有办法让多部分输出到文本,而不必将其附加到消息中?

0 投票
1 回答
674 浏览

java - MIME4J 中基于事件的解析 - 如何从 InputStream 填充新消息?

我正在使用 MIME4J 从电子邮件堆栈转储中读取 MIME 事件。我正在尝试将 START_MESSAGE 和 END_MESSAGE 标头定义的给定消息事件作为一个完整事件读取,因为我最终会将进程移动到分布式文件系统,并且需要计划文件拆分边界遍历。

对于 mime4j 中基于事件的解析,需要一个 ContentHandler 接口,解析器从它调用方法,这需要将处理程序设置为它。我已经尝试了来自另一个 SO 答案的示例处理程序,它扩展了 mime4j 打包的 SimpleContentHandler,但实际上只解析标题。

我正在尝试构建我的自定义 ContentHandler 类来收集完整的消息作为一个事件。然后我需要将事件放在一个临时对象中,这样我就可以解析标题、它们的字段以及字段的内容。最终目标是将这种行为适应 MapReduce,因此有必要应对电子邮件的一部分位于一个文件拆分中而另一部分位于不同文件拆分中的可能性。

对于我的自定义 ContentHandler,我已经做到了:

对于一个主要的,我正在使用:

因此,任何有关如何在处理程序中构建信息的帮助都会非常有帮助。我尝试设置一个新的 MessageImpl,然后使用构建器将解析的流复制到其中,我还尝试从流的解析中构建一个 newMessage,然后在读取 END_MESSAGE 标头时打印消息,但是它打印空值。

我可能也遇到了一个概念盲点。如果是这样的话,我可以接受指出。谢谢!

0 投票
1 回答
153 浏览

android - Android:发布到受密码保护的服务器

我正在尝试将信息从我的 Android 设备发送到我的 php 服务器。我遵循了本教程(http://www.codeofaninja.com/2013/04/android-http-client.html),但后来意识到没有地方可以指定我的 useID 和密码来登录服务器。很多搜索,但无法到达任何地方。我是 Android 和 Apache 的新手。请指教,谢谢。

0 投票
1 回答
273 浏览

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

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

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

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

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

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

非常感谢任何帮助!

0 投票
0 回答
2136 浏览

java - 在 Java 中为邮件添加页脚/签名

在我的一个 Java 应用程序中,我必须转发电子邮件。因此,我收到了包含任何内容(可能还有附件)的电子邮件(纯文本或多部分)。我编辑他们的主题,从头到尾,并通过 SMTP 发送它们。

我已经使用Apache James Mime4jApache Commons Net实现了这一点,但现在我还必须在每封电子邮件的内容中附加页脚/签名。

我也可以使用 Mime4j 实现这一点吗?会很好!如何?如果没有:还有其他方法吗?


编辑:沃尔夫冈·法尔评论后的详细信息:

也许我以错误的方式使用库,但我正在解析消息如下:

现在我有一个 Message 实例,我可以设置它的主题、发件人等。但Message没有提供方法setText()或类似的东西。好的,getBody()但是我不知道如何操纵Body

0 投票
2 回答
537 浏览

java - MboxIterator 不在 Apache Mime4J 中

我下载了最新稳定版apache-mime4j(0.7.2)的二进制文件。

但是,由于找不到MboxIterator&类,我无法编译下一个代码。CharBufferWrapper

我的构建路径中包含的 jars: apache-mime4j-core-0.7.2.jar, apache-mime4j-dom-0.7.2.jar.

我使用了错误的罐子或版本吗?