Quản lý Tệp Đính Kèm trong Tệp Outlook MSG
Aspose.Email for C++ cung cấp API phong phú để truy cập, lưu, xóa và nhúng tệp đính kèm khi làm việc với các tệp Microsoft Outlook MSG. Các tệp đính kèm được xử lý thông qua MapiMessage lớp, sử dụng Attachments thuộc tính, cung cấp một MapiAttachmentCollection.
Lưu Tệp Đính Kèm từ Tệp MSG
Để trích xuất và lưu tệp đính kèm từ một tệp MSG:
- Tải tin nhắn bằng cách sử dụng MapiMessage::Load.
- Lặp qua MapiAttachmentCollection.
- Lưu mỗi tệp đính kèm bằng cách sử dụng MapiAttachment::Save() phương thức.
// 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());
}
}
Xóa Đính kèm
Aspose.Email for C++ cung cấp hai cách để xóa tệp đính kèm khỏi các tệp MSG:
- Call the RemoveAttachments() method
Nó nhận đường dẫn của tệp tin nhắn làm tham số. Được triển khai dưới dạng phương thức tĩnh công khai, vì vậy bạn không cần khởi tạo đối tượng. Phương thức trợ giúp tĩnh này sẽ xóa tất cả các tệp đính kèm khỏi một tệp tin nhắn.
Đoạn mã dưới đây cho thấy cách sử dụng phương pháp này.
- Call the DestoryAttachment() method
Nó hoạt động nhanh hơn vì nó xóa các tệp đính kèm mà không cần phân tích toàn bộ tệp MSG.
Thêm Đính kèm MSG
Các tệp MSG có thể chứa các tệp MSG khác dưới dạng tệp đính kèm tiêu chuẩn hoặc nhúng. Sử dụng phiên bản quá tải Add phương thức trong MapiAttachmentCollection để nhúng các tin nhắn Outlook.
Mẫu mã dưới đây minh họa cách tạo một tin nhắn MAPI mới với người gửi, người nhận, tiêu đề và nội dung được chỉ định, sau đó đính kèm một tệp MSG hiện có như một tin nhắn nhúng, và cuối cùng lưu tin nhắn kết quả với tệp đính kèm nhúng vào một tệp MSG mới.
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");