Парсинг файлов сообщений Outlook
Используя Aspose.Email для Java, разработчики могут не только загружать, но и парсить содержимое файлов сообщений Outlook.
- Для загрузки файлов MSG с диска используйте статический метод Load класса MapiMessage.
- Для парсинга содержимого файла MSG класс MapiMessage предоставляет ряд методов.
Эта тема показывает, как загрузить и затем парсить файл MSG для отображения его содержимого.
Aspose.Email для Java предоставляет класс MapiMessage , который используется для открытия и парсинга файла MSG. Поскольку в файле MSG может быть много получателей, класс MapiMessage выставляет метод getRecipients() , который возвращает MapiRecipientCollection , представляющий собой коллекцию объектов MapiRecipient. Объект MapiRecipient дополнительно предлагает методы для работы с атрибутами получателя.
Следующая последовательность шагов служит этой цели:
- Создайте экземпляр класса MapiMessage для загрузки файла MSG с помощью статического метода Load.
- Отобразите имя отправителя, тему и текст сообщения из файла MSG, используя методы getSenderName(), getSubject() и getBody() .
- Вызовите метод getRecipients() , предоставленный классом MapiRecipient, чтобы получить ссылку на коллекцию объектов MapiRecipient, связанных с файлом MSG.
- Переберите коллекцию MapiRecipientCollection , чтобы отобразить содержимое для каждого объекта MapiRecipient через его публичные методы.
// Путь к каталогу ресурсов.
String dataDir = Utils.getSharedDataDir(ParsingOutlookMessageFiles.class) + "outlook/";
//Создание файла MSG для загрузки файла MSG с диска
MapiMessage outlookMessageFile = MapiMessage.fromFile(dataDir + "message.msg");
//Отображение имени отправителя
System.out.println("Sender Name : " + outlookMessageFile.getSenderName());
//Отображение темы
System.out.println("Subject : " + outlookMessageFile.getSubject());
//Отображение текста
System.out.println("Body : " + outlookMessageFile.getBody());
//Отображение информации о получателе
System.out.println("Recipients : \n");
//Перебор коллекции получателей, связанной с объектом MapiMessage
for (int i = 0; i < outlookMessageFile.getRecipients().size(); i++) {
//Установка ссылки на объект MapiRecipient
MapiRecipient rcp = (MapiRecipient) outlookMessageFile.getRecipients().get_Item(i);
//Отображение адреса электронной почты получателя
System.out.println("Email : " + rcp.getEmailAddress());
//Отображение имени получателя
System.out.println("Name : " + rcp.getDisplayName());
//Отображение типа получателя
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()) {
// Неподдерживаемый тип. MapiMessage не может быть преобразовано в соответствующий тип элемента.
// Просто используйте в формате MSG.
case MapiItemType.None:
break;
// Электронное сообщение. Преобразование не требуется.
case MapiItemType.Message:
break;
// Элемент контакта. Может быть преобразовано в MapiContact.
case MapiItemType.Contact:
MapiContact contact = (MapiContact) msg.toMapiMessageItem();
break;
// Элемент календаря. Может быть преобразовано в MapiCalendar.
case MapiItemType.Calendar:
MapiCalendar calendar = (MapiCalendar) msg.toMapiMessageItem();
break;
// Рассылка. Может быть преобразовано в MapiDistributionList.
case MapiItemType.DistList:
MapiDistributionList dl = (MapiDistributionList) msg.toMapiMessageItem();
break;
// Запись журнала. Может быть преобразовано в MapiJournal.
case MapiItemType.Journal:
MapiJournal journal = (MapiJournal) msg.toMapiMessageItem();
break;
// Заметка. Может быть преобразовано в MapiNote.
case MapiItemType.Note:
MapiNote note = (MapiNote) msg.toMapiMessageItem();
break;
// Задача. Может быть преобразовано в MapiTask.
case MapiItemType.Task:
MapiTask task = (MapiTask) msg.toMapiMessageItem();
break;
}
}