2012-06-11 23 views
0

我已将单个邮件存储为我的磁盘上的.eml文件。当需要将它们从磁盘读取到内存中时,我无法恢复电子邮件的正文(文本)。下面的代码读取.eml文件将.eml读入JavaMail MIME格式

String filePath = "filepath\\msg0.eml"; 
InputStream is = new FileInputStream(filePath); 
MimeMessage mime = new MimeMessage(null, is); 

这里的有趣的事情 - 我可以打印出各种各样的事情有关的电子邮件,它的主题行是谁,它接收的时间,抄送,密送,等等我只是无法访问电子邮件内容。在哪里我应该看到正文,而不是有内存地址(下)

content type: multipart/alternative; boundary="00032555717a714a1504a378be8e" 

所以有帮助吗?我忘了像演员一样简单的事情吗?除了MimeMessage格式之外,我尝试从Multipart和Message中打印内容。感谢您的意见,谢谢!

+0

http://www.faqs.org/rfcs/rfc822.htm和http://en.wikipedia.org/wiki/MIME –

回答

0

使用随JavaMail来显示文件中的消息msgshow.java演示程序。使用-m选项。如果它没有显示你的期望,那么文件格式是错误的,你应该看看在文件中存储消息的程序。

如果您还是有问题,我们会需要更多的细节,以帮助你找出什么是错的。

+0

感谢您的快速回复,修改了msgshow演示后,它稍微有效。现在想知道它是如何工作的(之前我曾尝试过使用msgshow,但没有任何运气,再次感谢! – Kyte

+0

你为了使它工作而需要改变什么? –

+0

不是从msgshow的主要方法运行,而是创建了一个msgshow对象在我自己的类中,我将MIME对象转换为Part对象,并将其命名为dumpPart(Part p),现在我开始将ArrayList 读入一个MimeMessage数组中。 – Kyte