Разбор файлов сообщений Outlook
С помощью Aspose.Email для Java разработчики могут не только загружать, но и разбирать содержимое файлов сообщений Outlook.
- Чтобы загрузить файлы MSG с диска, используйте MapiMessage class static Load метод.
- Чтобы разобрать содержимое файла MSG, MapiMessage предоставляет ряд методов.
Эта тема показывает, как загрузить и затем разобрать файл MSG для отображения его содержимого.
Aspose.Email for Java предоставляет MapiMessage класс, используемый для открытия и разбора файла MSG. Поскольку в файле MSG может быть много получателей, MapiMessage класс раскрывает getRecipients() метод, который возвращает MapiRecipientCollection который представляет собой коллекцию Для сохранения вложений в файле MSG на диск с оригинальными именем и расширением: объекты. The Для сохранения вложений в файле MSG на диск с оригинальными именем и расширением: объект дополнительно предоставляет методы для работы с атрибутами получателей.
Следующая последовательность шагов служит этой цели:
- Создать экземпляр MapiMessage класс для загрузки файла MSG из Load статический метод.
- Отобразить имя отправителя, тему и тело из файла MSG с помощью getSenderName(), getSubject() и getBody() методов.
- Вызвать getRecipients() метод, предоставляемый Для сохранения вложений в файле MSG на диск с оригинальными именем и расширением: класс для получения ссылки на коллекцию Для сохранения вложений в файле MSG на диск с оригинальными именем и расширением: метод для получения ссылки на коллекцию
- Переберите MapiRecipientCollection коллекцию для отображения содержимого каждого Для сохранения вложений в файле MSG на диск с оригинальными именем и расширением: для отображения содержимого, относящегося к каждому
// 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 App.
Получить тип элемента 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;
}
}