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-fossBướ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.