Керування вкладеннями у Outlook MSG‑файлах
Aspose.Email for C++ надає багатий API для доступу, збереження, видалення та вбудовування вкладень під час роботи з Microsoft Outlook MSG‑файлами. Вкладення обробляються через MapiMessage клас, використовуючи його Attachments властивість, яка надає MapiAttachmentCollection.
Зберегти вкладення з MSG‑файлу
Щоб витягти та зберегти вкладення з MSG‑файлу:
- Завантажте повідомлення, використовуючи MapiMessage::Load.
- Ітеруйте через MapiAttachmentCollection.
- Зберегти кожне вкладення за допомогою MapiAttachment::Save() метод.
// Create an instance of MapiMessage from file
System::SharedPtr<MapiMessage> message = MapiMessage::Load(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.Email for C++ пропонує два способи видалення вкладень з MSG‑файлів:
- Call the RemoveAttachments() method
Метод приймає шлях до файлу повідомлення як параметр. Він реалізований як публічний статичний метод, тому не потрібно створювати об’єкт. Цей статичний допоміжний метод видаляє всі вкладення з файлу повідомлення.
Наведений фрагмент коду показує, як використати цей метод.
- Call the DestoryAttachment() method
Він працює швидше, оскільки видаляє вкладення без повного розбору MSG‑файлу.
Додати MSG прикріплення
MSG‑файли можуть містити інші MSG‑файли як стандартні, так і вбудовані вкладення. Використовуйте перевантажений Add методи в MapiAttachmentCollection для вбудовування Outlook‑повідомлень.
Наведений приклад коду демонструє, як створити нове MAPI‑повідомлення з вказаними відправником, одержувачем, темою та тілом, потім приєднати існуючий MSG‑файл як вбудоване повідомлення та, нарешті, зберегти отримане повідомлення з вбудованим вкладенням у новий MSG‑файл.
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::Load(L"Message.msg");
message->get_Attachments()->Add(L"Weekly report.msg", attachMsg);
message->Save(dataDir + L"WithEmbeddedMsg_out.msg");