Parsowanie plików wiadomości Outlook
Korzystając z Aspose.Email dla Javy, programiści mogą nie tylko wczytywać, ale także parsować zawartość plików wiadomości Outlook.
- Aby wczytać pliki MSG z dysku, użyj MapiMessage klasa statyczna Load metoda.
- Aby sparsować zawartość pliku MSG, MapiMessage udostępnia szereg metod.
Ten temat pokazuje, jak załadować i następnie sparsować plik MSG, aby wyświetlić jego zawartość.
Aspose.Email dla Javy zapewnia MapiMessage klasa używana do otwierania i parsowania pliku MSG. Ponieważ w pliku MSG może znajdować się wielu odbiorców, MapiMessage klasa udostępnia getRecipients() metoda, która zwraca MapiRecipientCollection który reprezentuje kolekcję MapiRecipient obiekty. The MapiRecipient obiekt dodatkowo udostępnia metody do pracy z atrybutami odbiorców.
Następująca kolejność kroków spełnia ten cel:
- Utwórz instancję MapiMessage klasy do wczytania pliku MSG z Load metody statycznej.
- Wyświetl nazwę nadawcy, temat i treść z pliku MSG używając getSenderName(), getSubject() i getBody() metod.
- Wywołaj getRecipients() metoda udostępniona przez MapiRecipient klasa, aby uzyskać odniesienie do kolekcji MapiRecipient obiektów powiązanych z plikiem MSG.
- Iteruj przez MapiRecipientCollection kolekcja do wyświetlania zawartości dla każdego MapiRecipient obiekt poprzez jego publiczne metody.
// The path to the resource directory.
String dataDir = Utils.getSharedDataDir(ParsingOutlookMessageFiles.class) + "outlook/";
//Instantiate an MSG file to load an MSG file from disk
MapiMessage outlookMessageFile = MapiMessage.fromFile(dataDir + "message.msg");
//Display sender's name
System.out.println("Sender Name : " + outlookMessageFile.getSenderName());
//Display Subject
System.out.println("Subject : " + outlookMessageFile.getSubject());
//Display Body
System.out.println("Body : " + outlookMessageFile.getBody());
//Display Recipient's info
System.out.println("Recipients : \n");
//Loop through the recipients collection associated with the MapiMessage object
for (int i = 0; i < outlookMessageFile.getRecipients().size(); i++) {
//Set a reference to the MapiRecipient object
MapiRecipient rcp = (MapiRecipient) outlookMessageFile.getRecipients().get_Item(i);
//Display recipient email address
System.out.println("Email : " + rcp.getEmailAddress());
//Display recipient name
System.out.println("Name : " + rcp.getDisplayName());
//Display recipient type
System.out.println("Recipient Type : " + rcp.getRecipientType());
}
Wypróbuj!
Parsuj pliki e‑mail online za darmo Aspose.Email Parser App.
Uzyskaj typ elementu wiadomości MAPI
Aspose.Email oferuje MapiItemType enumeracja reprezentująca typ elementu. Może być użyta do konwersji wiadomości na obiekt odpowiedniej klasy pochodnej od IMapiMessageItem interfejs. Dzięki temu użytkownicy nie muszą sprawdzać wartości właściwości MessageClass przed konwersją wiadomości.
Poniższy przykład kodu demonstruje, jak iterować przez wiadomości w folderze i konwertować każdą wiadomość MAPI na odpowiedni typ elementu MAPI, w zależności od typu wiadomości:
for (MessageInfo messageInfo : folder.enumerateMessages()) {
MapiMessage msg = pst.extractMessage(messageInfo);
switch (msg.getSupportedType()) {
// Non-supported type. MapiMessage cannot be converted to an appropriate item type.
// Just use in MSG format.
case MapiItemType.None:
break;
// An email message. Conversion isn't required.
case MapiItemType.Message:
break;
// A contact item. Can be converted to MapiContact.
case MapiItemType.Contact:
MapiContact contact = (MapiContact) msg.toMapiMessageItem();
break;
// A calendar item. Can be converted to MapiCalendar.
case MapiItemType.Calendar:
MapiCalendar calendar = (MapiCalendar) msg.toMapiMessageItem();
break;
// A distribution list. Can be converted to MapiDistributionList.
case MapiItemType.DistList:
MapiDistributionList dl = (MapiDistributionList) msg.toMapiMessageItem();
break;
// A Journal entry. Can be converted to MapiJournal.
case MapiItemType.Journal:
MapiJournal journal = (MapiJournal) msg.toMapiMessageItem();
break;
// A StickyNote. Can be converted to MapiNote.
case MapiItemType.Note:
MapiNote note = (MapiNote) msg.toMapiMessageItem();
break;
// A Task item. Can be converted to MapiTask.
case MapiItemType.Task:
MapiTask task = (MapiTask) msg.toMapiMessageItem();
break;
}
}