Загрузка, просмотр и разбор файла MSG

Эта тема объясняет, как загрузить файл сообщения Microsoft Outlook (*.msg). 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)