مدیریت پیوستها در فایلهای Outlook MSG
Aspose.Email for C++ یک API غنی برای دسترسی، ذخیره، حذف و درج پیوستها هنگام کار با فایلهای Microsoft Outlook MSG فراهم میکند. پیوستها از طریق MapiMessage کلاس، با استفاده از Attachments ویژگی که یک MapiAttachmentCollection.
ذخیره پیوستها از یک فایل MSG
برای استخراج و ذخیره پیوستها از یک فایل MSG:
- پیام را بارگذاری کنید با استفاده از MapiMessage::Load.
- درون MapiAttachmentCollection.
- هر پیوست را با استفاده از 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 ارائه میدهد:
- فراخوانی RemoveAttachments() متد
آدرس فایل پیام را بهعنوان پارامتر میگیرد. بهصورت یک متد عمومی استاتیک پیادهسازی شده است، بنابراین شما نیازی ندارید
قطعه کد زیر نشان میدهد چگونه از این متد استفاده کنید.
- فراخوانی DestoryAttachment() متد
این روش سریعتر کار میکند زیرا پیوستها را بدون تجزیهوتحلیل کامل فایل 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");