Чтение файла Outlook MSG с помощью Java

MSG — это формат файла электронной почты, используемый MS Outlook. Это элемент Outlook, который позволяет хранить электронные письма, контакты, сообщения, задачи, встречи и т. д. В некоторых случаях нам может потребоваться прочитать файлы Outlook MSG в приложениях Java и извлечь такие свойства, как тема, получатели, отправитель, тело и т. д. В этой статье мы узнаем, как читать файл Outlook MSG с помощью Java.

В этой статье должны быть раскрыты следующие темы:

Java API для чтения файла Outlook MSG

Для чтения файла Outlook MSG мы будем использовать API Aspose.Email для Java. Это позволяет легко создавать, отправлять, читать и управлять сообщениями электронной почты. Он также поддерживает синтаксический анализ файлов Outlook MSG и предоставляет их содержимое в объектах Java. Пожалуйста, либо скачайте JAR API, либо просто добавьте следующую конфигурацию pom.xml в приложение Java на основе Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-email</artifactId>
    <version>22.2</version>
    <classifier>jdk16</classifier>
</dependency>

Анализ и чтение файла Outlook MSG с использованием Java

Мы можем разобрать и прочитать файл Outlook MSG, выполнив следующие действия:

  1. Загрузите файл MSG с помощью метода MapiMessage.load().
  2. Прочитайте такие свойства, как SenderName, Subject, Body, Recipients из загруженного сообщения MSG.

В следующем примере кода показано, как читать файл Outlook MSG с помощью Java.

// В этом примере кода показано, как читать файл MSG.
// Загрузите файл MSG с диска
MapiMessage outlookMessageFile = MapiMessage.load("D:\\Files\\Email\\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());
}
Разберите и прочитайте файл Outlook MSG с помощью Java.

Разберите и прочитайте файл Outlook MSG с помощью Java.

Получить вложения из файла MSG с помощью Java

Мы также можем сохранить вложения из файла Outlook MSG, выполнив следующие действия:

  1. Загрузите файл MSG с помощью метода MapiMessage.load().
  2. Прокрутите коллекцию вложений, связанную с объектом MapiMessage.
  3. Сохраните каждое вложение на диск с помощью метода save().

В следующем примере кода показано, как сохранить вложения из файла Outlook MSG с помощью Java.

// В этом примере кода показано, как сохранить вложения из файла MSG.
// Загрузите файл MSG с диска
MapiMessage outlookMessageFile = MapiMessage.load("D:\\Files\\Email\\WithEmbeddedMsg.msg");

// Перебрать коллекцию вложений, связанную с объектом MapiMessage.
for (int i = 0; i < outlookMessageFile.getAttachments().size(); i++) {
  
  // Установить ссылку на объект MapiAttachment
  MapiAttachment outlookMessageAttachment = (MapiAttachment) outlookMessageFile.getAttachments().get_Item(i);
  
  // Показать тип вложения
  System.out.println("Att Type : " + outlookMessageAttachment.getMimeTag());
  
  // Показать имя прикрепленного файла
  System.out.println("File Name : " + outlookMessageAttachment.getLongFileName());
  
  // Сохранить вложение на диск
  outlookMessageAttachment.save("D:\\Files\\Email\\" + outlookMessageAttachment.getDisplayName());
}
Получить вложения из файла MSG с помощью Java.

Получить вложения из файла MSG с помощью Java.

Чтение встроенного сообщения из вложения

Мы также можем прочитать сообщения электронной почты, встроенные во вложение Outlook MSG, выполнив следующие действия:

  1. Загрузите файл MSG с помощью метода MapiMessage.load().
  2. Получите прикрепленное сообщение как объект MapiMessage.
  3. Показать свойства сообщения.

В следующем примере кода показано, как читать встроенное сообщение как вложение с помощью Java.

// В этом примере кода показано, как читать встроенное сообщение, вложенное в MSG.
// Загрузите файл MSG
MapiMessage mapi = MapiMessage.load(dataDir + "EmbededMessageAsAttachment.msg");

// Показать общее количество вложений
System.out.println("Total attachments : " + mapi.getAttachments().size());

// Прочитать вложение как MapiMessage
MapiMessage emb = mapi.getAttachments().get_Item(0).getObjectData().toMapiMessage();

// Показать имя отправителя
System.out.println("Sender Name : " + emb.getSenderName());

// Показать тему
System.out.println("Subject : " + emb.getSubject());

// Показать тело
System.out.println("Body : " + emb.getBody());

// Показать информацию о получателе
System.out.println("Recipients :");

// Перебрать коллекцию получателей, связанную с объектом MapiMessage.
for (int i = 0; i < emb.getRecipients().size(); i++) {
  
  // Установите ссылку на объект MapiRecipient
  MapiRecipient rcp = (MapiRecipient) emb.getRecipients().get_Item(i);
  
  // Показать адрес электронной почты получателя
  System.out.println("\t Email : " + rcp.getEmailAddress());
  
  // Показать имя получателя
  System.out.println("\t Name : " + rcp.getDisplayName());
  
  // Показать тип получателя
  System.out.println("\t Recipient Type : " + rcp.getRecipientType());
}

Получить бесплатную лицензию

Попробуйте API без ознакомительных ограничений, запросив бесплатную временную лицензию.

Вывод

В этой статье мы узнали, как программно читать содержимое файла Outlook MSG с помощью Java. Более того, мы увидели, как читать и извлекать вложения из файла MSG. Кроме того, вы можете узнать больше об Aspose.Email для Java API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также