Gestionar archivos adjuntos en archivos Outlook MSG
Aspose.Email for C++ proporciona una API completa para acceder, guardar, eliminar e incrustar archivos adjuntos al trabajar con archivos MSG de Microsoft Outlook. Los archivos adjuntos se gestionan a través del MapiMessage clase, usando su Attachments propiedad, que expone un MapiAttachmentCollection.
Guardar archivos adjuntos de un archivo MSG
Para extraer y guardar archivos adjuntos de un archivo MSG:
- Cargue el mensaje usando MapiMessage::Load.
- Iterar a través de MapiAttachmentCollection.
- Guarda cada archivo adjunto usando el MapiAttachment::Save() método.
// 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());
}
}
Eliminar Adjuntos
Aspose.Email for C++ ofrece dos formas de eliminar archivos adjuntos de archivos MSG:
- Llamar al RemoveAttachments() método
Recibe la ruta del archivo de mensaje como parámetro. Está implementado como un método estático público, por lo que no necesitas instanciar el objeto. Este método auxiliar estático elimina todos los archivos adjuntos de un archivo de mensaje.
El siguiente fragmento de código muestra cómo usar este método.
- Llamar al DestoryAttachment() método
Funciona más rápido porque elimina los archivos adjuntos sin analizar completamente el archivo MSG.
Agregar Adjuntos MSG
Los archivos MSG pueden contener otros archivos MSG ya sea como adjuntos estándar o incrustados. Usa el sobrecargado Add métodos en MapiAttachmentCollection para incrustar mensajes de Outlook.
El siguiente ejemplo de código muestra cómo crear un nuevo mensaje MAPI con remitente, destinatario, asunto y cuerpo especificados, luego adjuntar un archivo MSG existente como mensaje incrustado, y finalmente guardar el mensaje resultante con el adjunto incrustado en un nuevo archivo 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");