Как начать с Aspose.Email FOSS для Python

Как начать с Aspose.Email FOSS для Python

aspose-email-foss Python — это бесплатная, лицензированная MIT библиотека для создания, чтения и использования в программах. Конвертирование файлов и контейнеров CFB Outlook — не требуется Microsoft Office, нет нации Прямые расширения Python от PyPI.

Пошаговое руководство

Шаг 1: Установите пакет

Установить с помощью PyPI:

pip install aspose-email-foss

Проверьте, что установка загружена правильно:

from aspose.email_foss.msg import MapiMessage
print("aspose-email-foss is ready.")

Шаг 2: Импорт необходимых классов

Импортируйте модули, необходимые для создания сообщений, назначения свойств и конверсии форматов:

from datetime import datetime, timezone
from aspose.email_foss import msg
from aspose.email_foss.msg import MapiMessage, PropertyId

Шаг 3: Создание файла MSG

Используйте MapiMessage.create() для создания сообщения с темой и телом. Настройка метаданных отправителя с PropertyId константы, добавлять получателей и прикреплять файл.

message = MapiMessage.create("Getting Started", "Hello from aspose-email-foss!")

message.set_property(PropertyId.SENDER_NAME, "Build Agent")
message.set_property(PropertyId.SENDER_EMAIL_ADDRESS, "agent@example.com")
message.set_property(
    PropertyId.MESSAGE_DELIVERY_TIME,
    datetime(2026, 1, 1, 9, 0, tzinfo=timezone.utc),
)

message.add_recipient("alice@example.com", display_name="Alice Example")
message.add_attachment("notes.txt", b"Meeting notes go here.\n", mime_type="text/plain")

message.save("getting-started.msg")
print("getting-started.msg written.")

Шаг 4: Прочитайте файл MSG назад

Загрузить сохраненный файл с помощью MapiMessage.from_file() как контекстный менеджер. Доступ к subject и body собственности непосредственно от возвращенного объекта.

with MapiMessage.from_file("getting-started.msg") as message:
    print(f"Subject: {message.subject}")
    print(f"Body   : {message.body}")

Шаг 5: Преобразуйте MSG в EML

to_email_bytes() конвертирует загруженное сообщение в формат RFC 5322. Напишите результат на А .eml Файл с стандартной библиотекой.

from pathlib import Path

with MapiMessage.from_file("getting-started.msg") as message:
    Path("getting-started.eml").write_bytes(message.to_email_bytes())
    print("getting-started.eml written.")

Общие проблемы и решения

ModuleNotFoundError: No module named 'aspose' Пакет не установлен в активной среде Python. pip install aspose-email-foss в той же виртуальной среде, которую вы используете для запуска сценария. подтвердить с помощью pip show aspose-email-foss.

FileNotFoundError Когда звонить MapiMessage.from_file() Путь, который вы пропустили, не существует или использует неправильный сепаратор для вашей ОС. pathlib.Path Для того чтобы построить дороги портально: MapiMessage.from_file(Path("folder") / "file.msg").

Файл MSG открывается в Outlook, но не показывает тему MapiMessage.create() принимает предмет как первый позиционный аргумент. если вы прошли пустой строки, Outlook показывает сообщение как незаглавленное. Пропустить неподпустую строку или настроить ее В явном с set_property(PropertyId.SUBJECT, "My Subject").

EML конверсия производит пустое тело to_email_bytes() использует body_html Если он установлен, и падает обратно в body.Подтвердить, что в по крайней мере одно из этих свойств не пусто после загрузки MSG с from_file().

Содержимое Unicode в получателях или предметах сокращено Прохождение unicode_strings=True Два MapiMessage.create() Чтобы обеспечить строгое свойство Сохранение в Unicode (PT_UNICODE) вместо ANSI (pt_STRING8).

Часто задаваемые вопросы

Требует ли Microsoft Office для электронной почты?

Библиотека полностью самообладает.Она читает и пишет бинарные MSG и CFB форматы на основе Python без какой-либо зависимости от Microsoft Office, COM автоматизации или Win32 API.

Можно ли использовать эту библиотеку на Linux или macOS?

Да да . aspose-email-foss является чистым Python и работает на любой платформе, которая поддерживает Python 3.10 или более поздние — включая Windows, macOS, Linux, Docker-контейнеры и беспроводные функции.

Свободно ли библиотека для коммерческого использования?

Да. Он выпущен под лицензией MIT. Вы можете использовать, модифицировать и распространять его для любых целей, включая коммерческие приложения, без роялти или требований к назначению за пределами текста лицензии.

Как добавить CC и BCC приемники?

Прохождение recipient_type=msg.RECIPIENT_TYPE_CC или msg.RECIPIENT_TYPE_BCC Как третий аргументация add_recipient():

message.add_recipient("bob@example.com", display_name="Bob", recipient_type=msg.RECIPIENT_TYPE_CC)

Как я встраиваю один MSG внутри другого?

Используйте MapiMessage.add_embedded_message_attachment(),Проходя через внутренний MapiMessage Объект как первый аргумент:

inner = MapiMessage.create("Inner message", "Embedded body.")
outer = MapiMessage.create("Outer message", "See attachment.")
outer.add_embedded_message_attachment(inner, "inner.msg")
outer.save("outer.msg")

Это тоже

 Русский