Zarządzanie załącznikami w plikach Outlook MSG
Aspose.Email for C++ zapewnia rozbudowane API do uzyskiwania dostępu, zapisywania, usuwania i osadzania załączników przy pracy z plikami Microsoft Outlook MSG. Załączniki są obsługiwane poprzez MapiMessage klasę, używając jej Attachments właściwość, która udostępnia MapiAttachmentCollection.
Zapisz załączniki z pliku MSG
Aby wyodrębnić i zapisać załączniki z pliku MSG:
- Załaduj wiadomość przy użyciu MapiMessage::Load.
- Iteruj przez MapiAttachmentCollection.
- Zapisz każdy załącznik przy użyciu 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());
}
}
Usuń załączniki
Aspose.Email for C++ oferuje dwa sposoby usuwania załączników z plików MSG:
- Wywołaj RemoveAttachments() metoda**
Przyjmuje ścieżkę do pliku wiadomości jako parametr. Jest zaimplementowana jako publiczna metoda statyczna, więc nie trzeba tworzyć instancji obiektu. Ta statyczna metoda pomocnicza usuwa wszystkie załączniki z pliku wiadomości.
Poniższy fragment kodu pokazuje, jak używać tej metody.
- Wywołaj DestoryAttachment() metoda**
Działa szybciej, ponieważ usuwa załączniki bez pełnego parsowania pliku MSG.
Dodaj załączniki MSG
Pliki MSG mogą zawierać inne pliki MSG jako standardowe lub osadzone załączniki. Użyj przeciążonej Add metody w MapiAttachmentCollection do osadzenia wiadomości Outlook.
Poniższy przykład kodu pokazuje, jak utworzyć nową wiadomość MAPI z określonym nadawcą, odbiorcą, tematem i treścią, następnie dołączyć istniejący plik MSG jako załącznik osadzony, a w końcu zapisać powstałą wiadomość z osadzonym załącznikiem do nowego pliku 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");