2015-06-26 2 views
0

Когда сообщение, вложение которого сохраняется в Microsoft Outlook, оно сохраняется как файлы «.msg», которые содержат все содержимое электронной почты вместе с файлами aattachment. Я хотел бы извлечь текстовое содержимое тела электронной почты, а также вложения. Поддерживает ли Apache Tika файлы «.msg»? Если не какая-либо другая идея?Как извлечь содержимое файлов .msg, созданных Outlook?

+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), вы увидите, что файлы MSG Outlook перечислены там как поддерживаемые и работают! – Gagravarr

+0

спасибо, что я обновил ответ – Paizo

1

Если вы посмотрите на list of mail formats supported by Apache Tika 1.9 (на данный момент последней версии), вы увидите, что файлы MSG Outlook перечислены как поддерживаемые.

Принимая простой файл пример MSG из Apache POI project's test files и используя Тик App автономной баночку, чтобы сделать тестирование легко, мы можем легко выйти содержание и метаданные:

$ 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 примеры использования

Смежные вопросы