Як створювати файли MSG у Python

Як створювати файли MSG у Python

aspose-email-foss for Python дозволяє створювати файли Outlook MSG програмно без Microsoft Office.

Покроковий посібник

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

pip install aspose-email-foss

Крок 2: Створити повідомлення

from aspose.email_foss.msg import MapiMessage, RECIPIENT_TYPE_CC

msg = MapiMessage.create("Meeting Notes", "Please review the attached notes.")

Крок 3: Додати одержувачів

msg.add_recipient("alice@example.com", display_name="Alice Smith")
msg.add_recipient("bob@example.com", display_name="Bob Jones", recipient_type=RECIPIENT_TYPE_CC)

Використовуйте цілі константи RECIPIENT_TYPE_TO (1), RECIPIENT_TYPE_CC (2) або RECIPIENT_TYPE_BCC (3) з aspose.email_foss.msg.


Крок 4: Додати вкладення

with open("notes.pdf", "rb") as f:
    msg.add_attachment("notes.pdf", f.read(), mime_type="application/pdf")

Щоб вбудувати інше повідомлення MSG:

inner = MapiMessage.create("Forwarded", "Original message body")
msg.add_embedded_message_attachment(inner, filename="forwarded.msg", mime_type="application/vnd.ms-outlook")

Крок 5: Зберегти файл MSG

msg.save("output.msg")

Або отримати байти для потокової передачі:

data = msg.to_bytes()

Поширені проблеми та виправлення

Порожні одержувачі у збереженому файлі

Переконайтеся, що викликаєте add_recipient() перед save(). Одержувачі записуються під час серіалізації.

Вкладення не відображається в Outlook

Перевірте, чи правильний MIME‑тип. Використовуйте "application/octet-stream" як резервний варіант для невідомих типів файлів.


Часті запитання (FAQ)

Чи можу я встановити HTML‑тіло?

Так. Використайте msg.body_html = "value", щоб встановити HTML‑тіло після створення.

Чи можу я конвертувати MSG у формат EML?

Так. Викличте msg.to_email_string(), щоб отримати представлення RFC 5322.

Максимальний розмір повідомлення?

Немає жорсткого обмеження. CFB v3 підтримує файли до 2 ГБ; v4 підтримує більші файли.

 Українська