Работа с вложениями сообщений

Разбор и сохранение вложений

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

Aspose.Email MapiMessage класс используется для загрузки файла MSG с диска и предоставляет getAttachments() метод, который ссылается на MapiAttachment коллекция объектов, связанная с файлом MSG. MapiAttachment объект также предоставляет методы, выполняющие действия с вложением.

Чтобы сохранить вложения в файле MSG на диск с оригинальным именем и расширением, выполните следующие действия:

  1. Создайте экземпляр MapiMessage класс для загрузки файла MSG с использованием Load() статический метод.
  2. Позвоните MapiRecipient class getAttachments() метод получения ссылки на коллекцию MapiAttachment объекты, связанные с файлом MSG.
  3. Пройдите через MapiAttachmentCollection для отображения содержимого каждого MapiAttachment объект с помощью публичных методов.
  4. Позвоните MapiAttachment class save() метод сохранения вложения на диск.  

Встраивание сообщений в виде вложений

Сообщение Microsoft Outlook может содержать другие сообщения Microsoft Outlook во вложениях в виде обычных сообщений, описанных выше, или встроенных сообщений. MapiAttachmentCollection предоставляет перегруженным участникам метода add для создания сообщений Outlook с обоими типами вложений. Файлы MSG Outlook, встроенные в файл MSG, содержат метод PR_ATTACH_METHOD со значением 5.

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

Вложения MSG: вставка и замена

Aspose.Email API предоставляет возможность вставлять вложения в определенном индексе в родительское сообщение. Он также предоставляет возможность заменять содержимое вложения другим вложением сообщения.

Вставьте вложение MSG в определенное место

Aspose.Email API предоставляет возможность вставлять вложение MSG в родительское сообщение с помощью MapiAttachmentCollection.Insert() method.

Замените содержимое встроенных вложений MSG

Это можно использовать для замены содержимого встроенного вложения новым, используя Replace метод. Однако его нельзя использовать для вставки вложения с PR_ATTACH_NUM = 4 (например) в коллекцию с Collection.count = 2.

Сохранение вложений из сообщения с цифровой подписью

Aspose.Email API предоставляет возможность получить или установить значение, указывающее, будет ли декодировано сообщение с четкой подписью. 

Переименовать вложение в MAPIMessage

Aspose.Email позволяет редактировать DisplayName стоимость недвижимости в Вложения MAPImessage.

В следующем примере кода показано, как обновить отображаемые имена первого и второго вложений в загруженном сообщении Mapi:

MapiMessage msg = MapiMessage.load(fileName);
msg.getAttachments().get_Item(0).setDisplayName("New display name 1");
msg.getAttachments().get_Item(1).setDisplayName("New display name 2");

Проверьте, является ли вложение встроенным или обычным

Разница между встроенными и обычными вложениями заключается в том, как они представлены в электронном письме. Встроенные вложения встроены в текст письма, и их можно просматривать без необходимости открывать отдельный файл или скачивать что-либо. С другой стороны, обычные вложения — это отдельные файлы, которые вложены в электронное письмо, но не отображаются непосредственно в тексте сообщения и должны быть загружены и открыты извне. MapiAttachment.IsInline собственность MapiAttachment class получает значение, указывающее, является ли вложение встроенным или обычным.

Следующий пример кода загружает сообщение электронной почты из файла, а затем извлекает информацию о вложениях, в частности печатает отображаемое имя каждого вложения и указано, находится ли оно в сообщении или нет:

MapiMessage message = MapiMessage.load("fileName");

for (MapiAttachment attach : message.getAttachments()) {
    System.out.println(attach.getDisplayName() + ": " + attach.isInline());
}