使用 Mirth Connect 通过 javaMail 库读取电子邮件

Reading emails through javaMail library with Mirth Connect

我的目标是通过 Mirth Connect 频道阅读电子邮件(并可能在收件箱中将它们标记为已读)。我发现了这个 Reading mail from open source Mirthconnect 关于这个问题的问题。奇怪的是,提问的人回答了这个问题。当我尝试实现他提供的代码时,他提供了我的规范,例如代替 gmail outlook 收件箱(这里没有问题),频道调用了错误:

64DETAILS:
    TypeError: Cannot find function getBodyPart in object <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body dir="auto"><div>Hi!</div>...(here the email continues with div tags)

所以我清楚地获得了电子邮件数据,但 getBodyPart 破坏了它。我从中了解到他的代码适用于特定类型的电子邮件,我想我在此处的示例中收到了一封 non-mime 电子邮件。

看来我要问的是:如何创建一个 reader 将所有邮件翻译成纯文本,然后将其输出到 logger/other 输出以便我可以管理它?

管理意味着将特定标题的邮件传播到不同的渠道,并在它们来自的收件箱中标记为已读。

我希望我的问题足够清楚并遵守提问规则。

我就是你在代码中提到的那个人。当我尝试从 GMAIL 获取邮件时,我也遇到了同样的问题。但是我关闭了安全应用程序,我在此处为 GMAIL 提供了 link。我想这样的东西也必须适用于 outlook。但是我已经尝试使用相同的代码在我的 outlook 中阅读,它在没有进行任何更改的情况下运行良好(不确定如何?)。

关闭 GMAIL 安全 https://myaccount.google.com/lesssecureapps

这取决于您正在阅读的邮件类型。在我的例子中,我在 mail.That 代码的主体中得到了 HTML 设计的数据,而不是通用的。它应该读取邮件中的 HTML 数据 body.I 我不确定你的邮件怎么样?。但是 mp.getBodyPart(0) 或 mp.getBodyPart(1) 应该提供一些输出。即使您在邮件中附加文件,mp.getBodyPart 也会阅读附件。

我正在回答你更新后的 query.This 程序会重复阅读电子邮件,因为你提到的是正确的,以避免在阅读后出现这种情况,你需要将电子邮件移动到其他文件夹,你也可以自定义你的从特定电子邮件发件人或基于主题读取的程序,以便它只读取您的特定电子邮件,您可以将该电子邮件移动到您希望的文件夹。