ניהול קבצים מצורפים בקבצי Outlook MSG

Aspose.Email for C++ מספק API עשיר לגישה, שמירה, הסרה והטמעה של קבצים מצורפים בעת עבודה עם קבצי Microsoft Outlook MSG. קבצים מצורפים מנוהלים דרך ה‑ MapiMessage מחלקה, באמצעות ה‑ Attachments מאפיין, החשוף את MapiAttachmentCollection.

שמירת קבצים מצורפים מקובץ MSG

כדי לחלץ ולשמור קבצים מצורפים מקובץ MSG:

  1. טען את ההודעה באמצעות MapiMessage::Load.
  2. איטרציה דרך ה- MapiAttachmentCollection.
  3. שמור כל קובץ מצורף באמצעות ה‑ 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:

המתודה מקבלת כפרמטר את הנתיב של קובץ ההודעה. היא ממומשת כשיטה סטטית ציבורית, ולכן אין צורך ליצור מופע של האובייקט. שיטה סטטית זו מסירה את כל הקבצים המצורפים מקובץ הודעה.

קטע הקוד הבא מראה כיצד להשתמש בשיטה זו.

זה עובד מהר יותר משום שהוא מסיר קבצים מצורפים ללא צורך בפענוח מלא של קובץ 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");