Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在应用程序之间传递java邮件对象_Java_Email_Jakarta Mail - Fatal编程技术网

在应用程序之间传递java邮件对象

在应用程序之间传递java邮件对象,java,email,jakarta-mail,Java,Email,Jakarta Mail,我正在使用JavaMailAPI1.4.1来获取新的电子邮件。两个类用于获取电子邮件,然后对其进行解析。“GetMail”类与邮件服务器(Gmail、yahoo等)通信并获取消息对象。然后,消息对象被传递到另一个类“MailFormatter”类,该类随后解析消息对象,获取电子邮件头(从、到、主题等),然后解析多部分内容以获取主体和附件。由于“邮件获取”和“邮件格式化”过程都是资源密集型的,这些类将作为单独的web应用程序实现。此应用程序将监视新电子邮件中的大量电子邮件ID。如果这些(“GetM

我正在使用JavaMailAPI1.4.1来获取新的电子邮件。两个类用于获取电子邮件,然后对其进行解析。“GetMail”类与邮件服务器(Gmail、yahoo等)通信并获取消息对象。然后,消息对象被传递到另一个类“MailFormatter”类,该类随后解析消息对象,获取电子邮件头(从、到、主题等),然后解析多部分内容以获取主体和附件。由于“邮件获取”和“邮件格式化”过程都是资源密集型的,这些类将作为单独的web应用程序实现。此应用程序将监视新电子邮件中的大量电子邮件ID。如果这些(“GetMail”和“MailFormatter”)作为单独的web应用程序实现,我如何将邮件对象从“GetMail”应用程序传递到“MailFormatter”应用程序?是否有一种方法可以将获取的消息对象持久化到某个位置(“GetMail”和“MailFormatter”应用程序共用的位置),以便“GetMail”可以将消息对象持久化到该位置,然后“MailFormatter”应用程序可以读取“消息”对象,并执行解析过程。无法序列化消息对象。如果它们无法序列化,如何保持java邮件对象的状态?请帮助我解决这个问题。

可以使用writeTo(OutputStream)序列化MimeMessage,并使用构造函数MimeMessage(Session,InputStream)反序列化MimeMessage


因此,可以从一个Web应用程序向另一个Web应用程序发送消息。

我意识到我没有回答您的问题(!),但我想知道您是否解决了正确的问题。解析非常耗时,需要拆分为不同的进程。您是否尝试过通过一个线程收集消息,并通过另一个线程异步解析它们?我怀疑这比执行某种形式的IPC更简单


如果您确实想序列化不可序列化的对象,请查看,它将序列化XML中的大部分内容。

谢谢您的回答。所以我可以使用FileOutputStream和persist对象作为文件,然后通过MIMessage构造函数读取它。FileOutputStream是保存消息的最佳方法吗?如果持久化消息不是mimessage怎么办?如何通过输入流读取非mime消息?此外,MimeMessage构造函数还需要一个会话对象来读取消息输入流。我如何才能在其他web应用程序中创建此会话对象?@jezhilvalan我不知道有任何真实情况下,您会收到无法转换为MimeMessage的消息,有人知道吗?@pessimonium:Java邮件JAR只有
MimeMessage
的impl,但是
消息
接口可能存在于将来的扩展中。