Работа с вложениями сообщений
Управление вложениями с Aspose Outlook
Создание и сохранение файлов сообщений Outlook (MSG) объясняет, как создавать и сохранять сообщения, а также как создавать файлы MSG с вложениями. Эта статья объясняет, как управлять вложениями Microsoft Outlook с помощью Aspose.Email. Вложения из файла сообщения получаются и сохраняются на диск с использованием свойства Attachments класса MapiMessage. Свойство Attachments представляет собой коллекцию типа MapiAttachmentCollection.
Проверка, является ли вложение встроенным или обычным
Встроенные и обычные вложения служат разным целям. Встроенные вложения визуально интегрированы в сообщение электронной почты и обычно являются изображениями или мультимедийными файлами. В то время как обычные вложения — это отдельные файлы, прикрепленные к электронной почте, и могут включать различные типы файлов. Свойство MapiAttachment.IsInline класса MapiAttachment получает значение, указывающее, является ли вложение встроенным или обычным.
Следующий фрагмент кода извлекает и отображает информацию о каждом вложении в загруженном MapiMessage, включая их отображаемые имена и информацию о том, являются ли они встроенными вложениями или нет.
var message = MapiMessage.Load(fileName);
foreach (var attach in message.Attachments)
{
Console.WriteLine($"{attach.DisplayName0} : {attach.IsInline)}");
}
Сохранение вложений из файла сообщения Outlook (MSG)
Чтобы сохранить вложения из файла MSG:
- Переберите коллекцию MapiAttachmentCollection и получите отдельные вложения.
- Для сохранения вложений вызовите метод Save() класса MapiAttachment.
Следующий фрагмент кода демонстрирует, как сохранить вложения на локальный диск.
Получение вложений вложенного почтового сообщения
Встроенные OLE-вложения также появляются в коллекции вложений класса MapiMessage. Следующий пример кода разбирает файл сообщения на предмет встроенных вложений и сохраняет его на диск. Статический метод класса MapiMessage FromProperties() может создать новое сообщение из встроенного вложения. Следующий фрагмент кода показывает, как получить вложенные почтовые сообщения.
Удаление вложений
Библиотека Aspose Outlook предоставляет функциональность для удаления вложений из файлов сообщений Microsoft Outlook (.msg):
- Вызовите метод RemoveAttachments(). Он принимает путь к файлу сообщения в качестве параметра. Этот метод реализован как открытый статический метод, поэтому вам не нужно создавать объект.
Следующий фрагмент кода показывает, как удалить вложения.
Вы также можете вызвать статический метод класса MapiMessage DestoryAttachment(). Он работает быстрее, чем RemoveAttachment(), поскольку метод RemoveAttachment() разбирает файл сообщения.
Добавление вложений MSG
Сообщение Outlook может содержать другие сообщения Microsoft Outlook в качестве вложений либо в виде обычных, либо встроенных сообщений. Коллекция MapiAttachmentCollection предоставляет перегруженные члены метода Add для создания сообщений Outlook с обоими типами вложений.
Попробуйте!
Добавьте или удалите вложения электронной почты с помощью бесплатного Aspose.Email Editor App.
Добавление ReferencAttachments к MapiMessage
Метод MapiAttachmentCollection.Add(string name, string sharedLink, string url, string providerName) класса MapiAttachmentCollection позволяет добавлять ссылочные вложения в MapiMessage. Когда получатели электронного письма нажимают на ссылочное вложение, они могут получить доступ к связанному файлу, если у них есть соответствующие разрешения для этого. Используя ссылочное вложение, вы можете отправить меньшее сообщение электронной почты и убедиться, что у всех есть доступ к самой последней версии файла или элемента.
У метода следующие параметры:
- name - имя вложения
- sharedLink - полностью квалифицированная ссылка на вложение, предоставленная веб-сервисом, управляющим вложением
- url - местоположение файла
- providerName - имя поставщика ссылочного вложения
Пример кода ниже демонстрирует, как добавить ссылочное вложение к сообщению:
// Допустим, вы хотите отправить электронное сообщение, которое включает ссылку на файл Document.pdf, хранящийся на Google Drive.
// Вместо того, чтобы прикреплять документ непосредственно к электронному сообщению,
// вы можете создать ссылочное вложение, которое ссылается на файл на Google Drive.
// Создайте сообщение
var msg = new MapiMessage("from@domain.com", "to@domain.com", "Файл сообщения Outlook",
"Это сообщение создано с помощью Aspose.Email", OutlookMessageFormat.Unicode);
// Добавьте ссылочное вложение
msg.Attachments.Add("Document.pdf",
"https://drive.google.com/file/d/1HJ-M3F2qq1oRrTZ2GZhUdErJNy2CT3DF/",
"https://drive.google.com/drive/my-drive",
"GoogleDrive");
//Кроме того, вы можете установить дополнительные свойства вложения
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentPermissionType, AttachmentPermissionType.AnyoneCanEdit);
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentOriginalPermissionType, 0);
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentIsFolder, false);
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentProviderEndpointUrl, "");
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentPreviewUrl, "");
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentThumbnailUrl, "");
// Наконец, сохраните сообщение
msg.Save(@"my.msg");
Встраивание сообщения как вложения
Следующий фрагмент кода показывает, как встроить вложение MSG в сообщение.
Чтение встроенных сообщений из вложений
Следующий фрагмент кода показывает, как читать встроенные сообщения из вложений.
Вставка и замена вложений
API Aspose.Email предоставляет возможность вставлять вложения в определенный индекс в родительском сообщении. Он также предоставляет возможность заменить содержимое вложения другим вложением сообщения.
Попробуйте!
Запустите простой проект приложения ReplaceAttach и опробуйте возможности Aspose.Email для замены вложений в действии.
Вставка в определенное место
API Aspose.Email предоставляет возможность вставить вложение MSG в родительский MSG, используя метод вставки MapiAttachmentCollection MapiAttachmentCollection Insert(int index, string name, MapiMessage msg). Следующий фрагмент кода показывает, как вставить вложение в определенное место.
Замена содержимого вложения
Это можно использовать для замены содержимого встроенного вложения на новые с помощью метода Replace. Однако его нельзя использовать для вставки вложения с PR_ATTACH_NUM = 4 (например) в коллекцию с collection.Count = 2. Следующий фрагмент кода показывает, как заменить содержимое вложения.
Переименование вложения в MapiMessage
Возможно редактировать значение свойства DisplayName в вложениях MapiMessage.
var msg = MapiMessage.Load(fileName);
msg.Attachments[0].DisplayName = "Новое отображаемое имя 1";
msg.Attachments[1].DisplayName = "Новое отображаемое имя 2";
Сохранение вложений из цифровых подписанных сообщений
API Aspose.Email предоставляет возможность получать или устанавливать значение, указывающее, будет ли декодироваться сообщение с чистой подписью.