Cách Tạo Tệp MSG trong Python

Cách Tạo Tệp MSG trong Python

aspose-email-foss cho Python cho phép bạn tạo tệp Outlook MSG một cách lập trình mà không cần Microsoft Office.

Hướng Dẫn Từng Bước

Bước 1: Cài đặt gói

pip install aspose-email-foss

Bước 2: Tạo tin nhắn

from aspose.email_foss.msg import MapiMessage, RECIPIENT_TYPE_CC

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

Bước 3: Thêm người nhận

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)

Sử dụng các hằng số nguyên RECIPIENT_TYPE_TO (1), RECIPIENT_TYPE_CC (2), hoặc RECIPIENT_TYPE_BCC (3) từ aspose.email_foss.msg.


Bước 4: Thêm tệp đính kèm

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

Để nhúng một tin nhắn MSG khác:

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

Bước 5: Lưu tệp MSG

msg.save("output.msg")

Hoặc lấy byte để phát luồng:

data = msg.to_bytes()

Các vấn đề thường gặp và cách khắc phục

Người nhận trống trong tệp đã lưu

Đảm bảo bạn gọi add_recipient() trước save(). Các người nhận được ghi trong quá trình tuần tự hoá.

Tệp đính kèm không hiển thị trong Outlook

Xác minh loại MIME là chính xác. Sử dụng "application/octet-stream" làm dự phòng cho các loại tệp không xác định.


Câu hỏi thường gặp (FAQ)

Tôi có thể đặt phần thân HTML không?

Vâng. Sử dụng msg.body_html = "value" để đặt phần thân HTML sau khi tạo.

Tôi có thể chuyển đổi MSG sang định dạng EML không?

Vâng. Gọi msg.to_email_string() để lấy biểu diễn RFC 5322.

Kích thước tin nhắn tối đa?

Không có giới hạn cứng. CFB v3 hỗ trợ các tệp lên tới 2 GB; v4 hỗ trợ các tệp lớn hơn.

 Tiếng Việt