Správa příloh v souborech Outlook MSG

Aspose.Email for C++ poskytuje bohaté API pro přístup k přílohám, jejich ukládání, odstraňování a vkládání při práci se soubory Microsoft Outlook MSG. Přílohy jsou zpracovávány prostřednictvím MapiMessage třídu, pomocí její Attachments vlastnost, která poskytuje MapiAttachmentCollection.

Uložit přílohy ze souboru MSG

Pro extrakci a uložení příloh ze souboru MSG:

  1. Nahrát zprávu pomocí MapiMessage::Load.
  2. Iterujte přes MapiAttachmentCollection.
  3. Uložte každou přílohu pomocí MapiAttachment::Save() metoda.
// 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());
    }
}

Odstranit přílohy

Aspose.Email pro C++ nabízí dva způsoby, jak odstranit přílohy ze souborů MSG:

Přijímá cestu k souboru zprávy jako parametr. Je implementována jako veřejná statická metoda, takže není třeba vytvářet instanci objektu. Tato statická pomocná metoda odstraňuje všechny přílohy ze souboru zprávy.

Následující úryvek kódu ukazuje, jak tuto metodu použít.

Funguje rychleji, protože odstraňuje přílohy bez úplného parsování souboru MSG.

Přidat MSG přílohy

Soubory MSG mohou obsahovat jiné soubory MSG jako standardní nebo vložené přílohy. Použijte přetíženou Add metody v MapiAttachmentCollection pro vložení zpráv Outlook.

Následující ukázkový kód demonstruje, jak vytvořit novou MAPI zprávu se zadaným odesílatelem, příjemcem, předmětem a tělem, poté připojit existující soubor MSG jako vloženou zprávu a nakonec uložit výslednou zprávu s vloženou přílohou do nového souboru 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");