Управление на прикрепени файлове в 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 за C++ предлага два начина за премахване на прикрепени файлове от MSG файлове:
- Викайте RemoveAttachments() method
Той приема пътя към файла със съобщението като параметър. Реализиран е като публичен статичен метод, затова не е необходимо да създавате обект. Този статичен помощен метод премахва всички прикрепени файлове от файл със съобщение.
Следният кодов откъс показва как да се използва този метод.
- Викайте 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");