Работа с вложениями сообщений Outlook с использованием C++ Email Parser API
Управление вложениями с Aspose Outlook
Создание и сохранение файлов сообщений Outlook (MSG) объясняет, как создавать и сохранять сообщения, а также как создавать файлы MSG с вложениями. Эта статья объясняет, как управлять вложениями Microsoft Outlook с помощью Aspose.Email. Вложения из файла сообщения доступны и сохраняются на диск с использованием свойства Attachments класса MapiMessage. Свойство Attachments является коллекцией типа MapiAttachmentCollection.
Сохранение вложений из файла сообщения Outlook (MSG)
Чтобы сохранить вложения из файла MSG:
- Переберите коллекцию MapiAttachmentCollection и получите отдельные вложения.
- Для сохранения вложений вызовите метод Save() класса MapiAttachment.
Следующий фрагмент кода показывает, как сохранить вложения на локальном диске.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
// Create an instance of MapiMessage from file | |
System::SharedPtr<MapiMessage> message = MapiMessage::FromFile(dataDir + fileName); | |
// Iterate through the attachments collection | |
{ | |
auto attachment_enumerator = (message->get_Attachments())->GetEnumerator(); | |
decltype(attachment_enumerator->get_Current()) attachment; | |
while (attachment_enumerator->MoveNext() && (attachment = attachment_enumerator->get_Current(), true)) | |
{ | |
// Save the individual attachment | |
attachment->Save(dataDir + attachment->get_FileName()); | |
} | |
} |
Удаление вложений
Библиотека Aspose Outlook предоставляет функциональность для удаления вложений из файлов сообщений Microsoft Outlook (.msg):
- Вызовите метод RemoveAttachments(). Он принимает путь к файлу сообщения в качестве параметра. Он реализован как публичный статический метод, поэтому вам не нужно создавать объект.
Следующий фрагмент кода показывает, как удалить вложения с использованием библиотеки C++ Email Parser.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
MapiMessage::RemoveAttachments(dataDir + L"AttachmentsToRemove_out.msg"); |
Вы также можете вызвать статический метод класса MapiMessage DestoryAttachment(). Он работает быстрее, чем RemoveAttachment(), потому что метод RemoveAttachment() разбирает файл сообщения.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
MapiMessage::DestroyAttachments(dataDir + L"AttachmentsToDestroy_out.msg"); |
Добавление вложений MSG
Сообщение Outlook может содержать другие сообщения Microsoft Outlook во вложениях как обычные или встроенные сообщения. MapiAttachmentCollection предоставляет перегруженные члены метода Add для создания сообщений Outlook с обоими типами вложений.
Встраивание сообщения в качестве вложения
Следующий фрагмент кода показывает, как сообщение MSG встроенное в файл MSG содержит PR_ATTACH_METHOD, значение которого равно 5.
For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C | |
System::SharedPtr<MapiMessage> message = System::MakeObject<MapiMessage>(L"from@test.com", L"to@test.com", L"Subj", L"This is a message body"); | |
System::SharedPtr<MapiMessage> attachMsg = MapiMessage::FromFile(dataDir + L"Message.msg"); | |
message->get_Attachments()->Add(L"Weekly report.msg", attachMsg); | |
message->Save(dataDir + L"WithEmbeddedMsg_out.msg"); |