Зареждане, преглед и парсиране на MSG файл

Тази тема обяснява как да заредите Microsoft Outlook Messagefile (*.msg). The MapiMessage класът се използва за зареждане на MSG файлове и предоставя няколко статични функции за зареждане за различни сценарии. Следният кодов откъс показва как да заредите MSG файлове от файл или от поток.

Зареждане на MSG файлове

Следният кодов откъс показва как да се заредят MSG файлове.

from aspose.email.mapi import MapiMessage

# Create an instance of MapiMessage from file
msg = MapiMessage.from_file("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)

Зареждане от поток

Следният кодов откъс показва как да заредите файл от поток.

from aspose.email.mapi import MapiMessage
import io

# Read the file into a byte array
file_path = dir_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.from_stream(stream)

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

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

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

Конвертиране на EML към MSG със запазване на формата на вградените EML

EML файлове могат да се заредят в MapiMessage клас чрез инстанциране на MailMessage обект и предаване към метода MapiMessage.from_mail_message. Ако EML файлът съдържа вградени EML файлове, използвайте MapiConversionOptions.PreserveEmbeddedMessageFormat за запазване формата на вградените EML файлове. По-долу кодовият откъс показва как да заредите EML файлове в MapiMessage, като запазите формата на вградените EML файлове.

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

eml_file = dir_path + "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)