Работа с вложениями сообщений
Разбор и сохранение вложений
Файлы сообщений Outlook могут содержать одно или несколько вложений. Aspose.Email позволяет разработчикам проходить по вложениям в файле MSG и сохранять их на диск. Эта тема описывает процесс. Также описывается, как встроить вложение.
Класс Aspose.Email MapiMessage используется для загрузки файла MSG с диска и предоставляет метод getAttachments(), который ссылается на коллекцию объектов MapiAttachment, связанных с файлом MSG. Объект MapiAttachment дополнительно предоставляет методы, которые выполняют действия с вложением.
Чтобы сохранить вложения в файле MSG на диск с оригинальным именем и расширением:
- Создайте экземпляр класса MapiMessage, чтобы загрузить файл MSG, используя статический метод Load().
- Вызовите метод getAttachments() класса MapiRecipient, чтобы получить ссылку на коллекцию объектов MapiAttachment, связанных с файлом MSG.
- Пройдите в цикле по MapiAttachmentCollection, чтобы отобразить содержание каждого объекта MapiAttachment через его публичные методы.
- Вызовите метод save() класса MapiAttachment, чтобы сохранить вложение на диск.
Встраивание сообщений как вложений
Сообщение Microsoft Outlook может содержать другие сообщения Microsoft Outlook во вложениях либо в виде обычных сообщений, описанных выше, либо встроенных сообщений. Коллекция MapiAttachmentCollection предоставляет перегруженные члены метода add для создания сообщений Outlook с обоими типами вложений. Вложенные в файл MSG сообщения содержат PR_ATTACH_METHOD со значением 5.
Чтение встроенного сообщения из вложения
Вставка и замена вложений MSG
API Aspose.Email предоставляет возможность вставлять вложения по определенному индексу в родительском сообщении. Он также предоставляет возможность замены содержимого вложения другим вложением.
Вставить вложение MSG в конкретное место
API Aspose.Email предоставляет возможность вставить вложение MSG в родительский MSG, используя метод MapiAttachmentCollection.Insert().
Заменить содержимое встроенного вложения MSG
Это можно использовать для замены содержимого встроенного вложения новыми, используя метод Replace. Однако, его нельзя использовать для вставки вложения с PR_ATTACH_NUM = 4 (например) в коллекцию с collection.Count = 2.
Сохранение вложений из цифрово подписанного сообщения
API Aspose.Email предоставляет возможность получить или установить значение, указывающее будет ли расшифровываться ясно подписанное сообщение.
Переименование вложения в MapiMessage
Aspose.Email позволяет редактировать значение свойства DisplayName в вложениях MapiMessage.
Следующий пример кода демонстрирует, как обновить имена дисплеев первых и вторых вложений в загруженном сообщении Mapi:
MapiMessage msg = MapiMessage.load(fileName);
msg.getAttachments().get_Item(0).setDisplayName("Новое имя дисплея 1");
msg.getAttachments().get_Item(1).setDisplayName("Новое имя дисплея 2");
Проверка, является ли вложение встроенным или обычным
Разница между встроенными и обычными вложениями заключается в том, как они представлены в электронном письме. Встроенные вложения встраиваются в тело письма и могут быть просмотрены без необходимости открывать отдельный файл или что-либо загружать. Обычные вложения, с другой стороны, являются отдельными файлами, прикрепленными к письму, но не отображаются непосредственно в теле сообщения и должны быть загружены и открыты отдельно. Свойство MapiAttachment.IsInline класса MapiAttachment получает значение, указывающее, является ли вложение встроенным или обычным.
Следующий пример кода загружает сообщение электронной почты из файла и затем извлекает информацию о вложениях, в частности, выводит имя дисплея каждого вложения и является ли оно встроенным в сообщение или нет:
MapiMessage message = MapiMessage.load("fileName");
for (MapiAttachment attach : message.getAttachments()) {
System.out.println(attach.getDisplayName() + ": " + attach.isInline());
}