مدیریت پیوست‌ها در فایل‌های 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 برای 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");