Як почати працювати з FOSS для Python

Як почати працювати з FOSS для Python

aspose-email-foss Python — безкоштовна бібліотека для створення, читання та використання. конвертація файлів Outlook MSG та контейнерів CFB — не потрібно Microsoft Office, немає рідного Розширення Python від PyPI.

Крок за кроком посібник

Крок 1: Встановити пакет

Альтернативно, використовуйте cells.get_cell_by_name(address).put_value(value), коли у вас є адреса клітинки у вигляді рядка:

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 2 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 контейнери та функції без сервера.

Чи є бібліотека вільною для комерційного використання?

Ви можете використовувати, змінювати і розповсюджувати його для будь-яких цілей, включаючи комерційні програми, без роялті або вимог до атрибуції за межами тексту ліцензії.

Як додати 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)

Як встановити один з них всередині іншого?

Використовуйте 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")

Це також

 Українська