Аналіз файлів повідомлень Outlook
Використовуючи Aspose.Email для Java, розробники можуть не лише завантажувати, а й аналізувати вміст файлів повідомлень Outlook.
- Щоб завантажити файли MSG з диска, використовуйте MapiMessage статичний клас Load метод.
- Для аналізу вмісту файлу MSG, MapiMessage надає ряд методів.
У цьому розділі показано, як завантажити та проаналізувати файл MSG для відображення його вмісту.
Aspose.Email for Java надає MapiMessage клас, який використовується для відкриття та парсингу файлу MSG. Оскільки у файлі MSG може бути багато одержувачів, MapiMessage клас надає getRecipients() метод, який повертає MapiRecipientCollection яка представляє колекцію MapiRecipient об’єкти. The MapiRecipient об’єкт також надає методи для роботи з атрибутами одержувачів.
Наступна послідовність кроків виконує цю задачу:
- Створіть екземпляр MapiMessage клас для завантаження файлу MSG з Load статичний метод.
- Відобразіть ім’я відправника, тему та тіло з файлу MSG, використовуючи getSenderName(), getSubject() і getBody() методи.
- Викличте getRecipients() метод, представлений MapiRecipient клас для отримання посилання на колекцію MapiRecipient об’єктів, пов’язаних з файлом MSG.
- Перебрати MapiRecipientCollection колекція для відображення вмісту кожного MapiRecipient об’єкт через його публічні методи.
// 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());
}
Спробуйте!
Парсинг електронних файлів онлайн безкоштовно Додаток Aspose.Email Parser.
Отримати тип елементу MAPI повідомлення
Aspose.Email пропонує MapiItemType перелік, який представляє тип елементу. Його можна використовувати для конвертації повідомлення в об’єкт відповідного класу, що успадкований від IMapiMessageItem інтерфейс. Це запобігає користувачам перевіряти значення властивості MessageClass перед конвертацією повідомлення.
Наступний зразок коду демонструє, як ітерувати повідомлення у папці та конвертувати кожне повідомлення MAPI у відповідний тип елементу MAPI, залежно від типу повідомлення:
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;
}
}