Cargar y analizar archivos MSG

Esta sección explica cómo cargar y analizar archivos de mensaje de Microsoft Outlook (.msg). La API de Aspose.Email proporciona una MapiMessage clase para cargar archivos MSG con varias funciones estáticas de carga para diferentes escenarios. Los siguientes fragmentos de código demuestran cómo cargar archivos MSG desde archivo o desde flujo.

Cargar un archivo MSG desde disco

El siguiente fragmento de código le muestra cómo cargar archivos MSG desde disco:

from aspose.email.mapi import MapiMessage

# Create an instance of MapiMessage from file
msg = MapiMessage.load("message.msg")

# Get subject
print("Subject: " + msg.subject)

# Get from address
print("From: " + msg.sender_email_address)

# Get body
print("Body: " + msg.body)

# Get recipients information
recipients = ", ".join([r.email_address for r in msg.recipients])
print("Recipients: " + recipients)

# Get attachments
for att in msg.attachments:
    print(att.file_name)
    print(att.display_name)

Cargar un archivo MSG desde un flujo

El siguiente fragmento de código le muestra cómo cargar archivos MSG desde un flujo:

from aspose.email.mapi import MapiMessage
import io

# Read the file into a byte array
file_path = "message.msg"
with open(file_path, "rb") as file:
    bytes_data = file.read()

# Create a memory stream from the byte array
stream = io.BytesIO(bytes_data)
stream.seek(0)

# Create an instance of MapiMessage from the stream
msg = MapiMessage.load(stream)

# Get subject
print("Subject: " + msg.subject)

# Get from address
print("From: " + msg.sender_email_address)

# Get body
print("Body: " + msg.body)

Convertir EML a MSG Conservando el Formato EML Incrustado

Los archivos EML pueden cargarse en MapiMessage clase instanciando una MailMessage objeto y pasándolo a MapiMessage.from_mail_message método. Si el archivo EML contiene archivos incrustados, use MapiConversionOptions.preserve_embedded_message_format para conservar el formato de los archivos incrustados. El fragmento de código a continuación muestra cómo cargar archivos EML en MapiMessage conservando el formato de los archivos EML incrustados.

El siguiente fragmento de código demuestra cómo convertir un archivo EML a un archivo MSG conservando el formato del mensaje incrustado:

from aspose.email import MailMessage, EmlLoadOptions
from aspose.email.mapi import MapiMessage, MapiConversionOptions, OutlookMessageFormat

eml_file = "message.eml"

# Load the EML file
eml_options = EmlLoadOptions()
eml = MailMessage.load(eml_file, eml_options)

# Create MapiConversionOptions
conversion_options = MapiConversionOptions()
conversion_options.format = OutlookMessageFormat.UNICODE

# Preserve Embedded Message Format
conversion_options.preserve_embedded_message_format = True

# Convert EML to MSG with options
msg = MapiMessage.from_mail_message(eml, conversion_options)