Verwalten von Anhängen in Outlook‑MSG‑Dateien
Aspose.Email für C++ stellt eine umfangreiche API zum Zugreifen, Speichern, Entfernen und Einbetten von Anhängen bereit, wenn mit Microsoft Outlook MSG‑Dateien gearbeitet wird. Anhänge werden über die MapiMessage Klasse bereitstellt, mittels ihrer Attachments Eigenschaft, die ein MapiAttachmentCollection.
Anhänge aus einer MSG‑Datei speichern
Um Anhänge aus einer MSG‑Datei zu extrahieren und zu speichern:
- Laden Sie die Nachricht mit MapiMessage::Load.
- Iterieren Sie durch die MapiAttachmentCollection.
- Speichern Sie jeden Anhang mit der MapiAttachment::Save() Methode.
// 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());
}
}
Anhänge entfernen
Aspose.Email für C++ bietet zwei Methoden, um Anhänge aus MSG‑Dateien zu entfernen:
- Rufen Sie die RemoveAttachments() Methode
Sie nimmt den Pfad der Nachrichtendatei als Parameter. Sie ist als öffentliche statische Methode implementiert, sodass Sie das Objekt nicht instanziieren müssen. Diese statische Hilfsmethode entfernt alle Anhänge aus einer Nachrichtendatei.
Der folgende Code‑Abschnitt zeigt, wie diese Methode verwendet wird.
- Rufen Sie die DestoryAttachment() Methode
Es arbeitet schneller, weil es Anhänge entfernt, ohne die MSG‑Datei vollständig zu parsen.
MSG‑Anhänge hinzufügen
MSG‑Dateien können andere MSG‑Dateien entweder als Standard‑ oder eingebettete Anhänge enthalten. Verwenden Sie die überladene Add Methoden in MapiAttachmentCollection um Outlook‑Nachrichten einzubetten.
Das folgende Code‑Beispiel zeigt, wie man eine neue MAPI‑Nachricht mit angegebenem Absender, Empfänger, Betreff und Körper erstellt, dann eine vorhandene MSG‑Datei als eingebettete Nachricht anhängt und schließlich die resultierende Nachricht mit dem eingebetteten Anhang in einer neuen MSG‑Datei speichert.
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");