2015-06-26 121 views
0

當附件獲得保存在Microsoft Outlook中的消息時,它會將其保存爲一個'.msg'文件,其中包含電子郵件的所有內容以及附件文件。我想提取電子郵件正文的文本內容以及附件。 Apache Tika是否支持'.msg'文件?如果沒有其他想法?如何提取由Outlook生成的'.msg'文件的內容?

+0

應該做的。當你嘗試它時有多少工作?什麼沒有? – Gagravarr

回答

-1

提卡不支持msg files

您可以使用apache POI有一些例子像這樣在一旁one

樣本:

public static void main(String[] args) throws Exception{ 
    MsgParser msgp = new MsgParser(); 
    Message msg = msgp.parseMsg("c:/temp/test2.msg"); 

    String fromEmail = msg.getFromEmail(); 
    String fromName = msg.getFromName(); 
    String subject = msg.getSubject(); 
    String body = msg.getBodyText(); 

    System.out.println("From :" + fromName + " <" + fromEmail + ">"); 
    System.out.println("Subject :" + subject); 
    System.out.println(""); 
    System.out.println(body); 
    System.out.println(""); 

    List atts = msg.getAttachments(); 
    for (Attachment att : atts) { 
     if (att instanceof FileAttachment) { 
     FileAttachment file = (FileAttachment) att; 
     System.out.println("Attachment : " + file.getFilename()); 
     // you get the actual attachment with 
     // byte date[] = file.getData(); 
     } 
    } 
    } 
+0

您已鏈接到Apache Tika文檔的大量古代版本!如果你看[最新版本,Tika 1.9](https://tika.apache.org/1.9/formats.html#Mail_formats),你會發現Outlook MSG文件在那裏被列爲受支持的,並且工作! – Gagravarr

+0

謝謝我更新了答案 – Paizo

1

如果你看一下list of mail formats supported by Apache Tika 1.9(目前最新版本),您會看到Outlook MSG文件被列爲受支持的文件。

Apache POI project's test files以一個簡單的例子MSG文件,並使用蒂卡應用獨立的罐子,使測試變得簡單,我們可以很容易地走出了內容和元數據:

$ java -jar tika-app-1.9.jar --metadata simple_test_msg.msg 
Author: Travis Ferguson 
Content-Length: 16896 
Content-Type: application/vnd.ms-outlook 
Creation-Date: 2007-07-06T05:27:17Z 
Last-Modified: 2007-07-06T05:27:17Z 
Last-Save-Date: 2007-07-06T05:27:17Z 
Message-Bcc: 
Message-Cc: 
Message-From: Travis Ferguson 
Message-Recipient-Address: [email protected] 
Message-To: [email protected] 
X-Parsed-By: org.apache.tika.parser.DefaultParser 
X-Parsed-By: org.apache.tika.parser.microsoft.OfficeParser 
creator: Travis Ferguson 
date: 2007-07-06T05:27:17Z 
dc:creator: Travis Ferguson 
dc:description: test message 
dc:title: test message 
dcterms:created: 2007-07-06T05:27:17Z 
dcterms:modified: 2007-07-06T05:27:17Z 
meta:author: Travis Ferguson 
meta:creation-date: 2007-07-06T05:27:17Z 
meta:save-date: 2007-07-06T05:27:17Z 
modified: 2007-07-06T05:27:17Z 
resourceName: simple_test_msg.msg 
subject: test message 
title: test message 


$ java -jar tika-app-1.9.jar --text simple_test_msg.msg 
test message 
From 
Travis Ferguson 
To 
[email protected] 
Recipients 
[email protected] 

This is a test message. 

元數據,包括髮件人,receipients ,日期等,文字,所有你想要的!

另外,如果你有特殊需求/要求,並希望完全控制,可以使用底層Apache POI HSMF library解析您的MSG文件,看看HSMF unit tests使用情況的示例

相關問題