Làm thế nào để bắt đầu với Aspose.Email FOSS cho Python
aspose-email-foss for Python là một thư viện miễn phí, được cấp phép bởi MIT để tạo, đọc và sử dụng. chuyển đổi Outlook MSG tập tin và container CFB — không cần Microsoft Office, không có bản địa Extensions, Python thuần túy từ PyPI.
Hướng dẫn từng bước
Bước 1: Cài đặt gói
Cài đặt từ PyPI với pip:
pip install aspose-email-fossKiểm tra cài đặt đã tải chính xác:
from aspose.email_foss.msg import MapiMessage
print("aspose-email-foss is ready.")Bước 2: Nhập các lớp học cần thiết
Nhập các mô-đun bạn cần để tạo tin nhắn, gán thuộc tính và chuyển đổi định dạng:
from datetime import datetime, timezone
from aspose.email_foss import msg
from aspose.email_foss.msg import MapiMessage, PropertyIdBước 3: Tạo một tập tin MSG
Sử dụng MapiMessage.create() để xây dựng một thông điệp với chủ đề và cơ thể. Thiết lập siêu dữ liệu người gửi Với PropertyId Thêm người nhận, và đính kèm một tập tin.
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.")Bước 4: Đọc tập tin MSG Back
Tải file được lưu bằng cách sử dụng MapiMessage.from_file() Quản lý ngữ cảnh.Công việc: Truy cập vào subject và body tài sản trực tiếp từ đối tượng được trả về.
with MapiMessage.from_file("getting-started.msg") as message:
print(f"Subject: {message.subject}")
print(f"Body : {message.body}")Bước 5: Chuyển đổi MSG sang EML
to_email_bytes() chuyển đổi tin nhắn được tải sang RFC 5322 định dạng. Viết kết quả để a) .eml File với thư viện tiêu chuẩn.
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.")Các vấn đề thường gặp và cách khắc phục
ModuleNotFoundError: No module named 'aspose' Gói này không được cài đặt trong môi trường Python đang hoạt động. pip install aspose-email-foss trong cùng một môi trường ảo mà bạn đang sử dụng để chạy kịch bản của mình. xác nhận với pip show aspose-email-foss.
FileNotFoundError Khi gọi MapiMessage.from_file() Đường bạn đã đi không tồn tại hoặc sử dụng bộ tách sai cho hệ điều hành của bạn. pathlib.Path Để xây dựng các con đường di động: MapiMessage.from_file(Path("folder") / "file.msg").
MSG file mở trong Outlook nhưng không hiển thị chủ đề MapiMessage.create() chấp nhận chủ đề như là đối số vị trí đầu tiên. nếu bạn đã vượt qua một chuỗi rỗng, Outlook hiển thị thư là không có tiêu đề. Chuyển qua một dòng không trống hoặc đặt nó Rõ ràng với set_property(PropertyId.SUBJECT, "My Subject").
EML chuyển đổi tạo ra một cơ thể trống rỗng to_email_bytes() Sử dụng body_html Nếu được thiết lập, và rơi trở lại body.- Xác nhận rằng tại ít nhất một trong những thuộc tính này không trống rỗng sau khi tải MSG với from_file().
Nội dung Unicode trong người nhận hoặc chủ đề bị cắt ngắn Pass đi unicode_strings=True 2 Đời MapiMessage.create() Để đảm bảo các thuộc tính string là được lưu trữ trong Unicode (PT_UNICODE) thay vì ANSI (pt_STRING8).
Câu hỏi thường gặp
Có cần Microsoft Office không?
Thư viện này hoàn toàn tự chứa. nó đọc và viết các định dạng nhị phân MSG và CFB bản địa trong Python mà không phụ thuộc vào bất kỳ Microsoft Office, COM automation hoặc Win32 API nào.
Tôi có thể sử dụng thư viện này trên Linux hoặc macOS không?
Có có. aspose-email-foss là Python thuần túy và chạy trên bất kỳ nền tảng nào hỗ trợ Python 3.10 hoặc mới hơn – bao gồm Windows, macOS, Linux, Docker container và các chức năng không có máy chủ.
Thư viện có miễn phí để sử dụng thương mại không?
Có. nó được phát hành theo giấy phép MIT. bạn có thể sử dụng, sửa đổi và phân phối lại cho bất kỳ mục đích nào, bao gồm các ứng dụng thương mại, mà không cần phí bản quyền hoặc yêu cầu quy định ngoài văn bản giấy tờ.
Làm thế nào để thêm CC và BCC nhận?
Pass đi recipient_type=msg.RECIPIENT_TYPE_CC hoặc msg.RECIPIENT_TYPE_BCC Như người thứ ba Argument cho add_recipient():
message.add_recipient("bob@example.com", display_name="Bob", recipient_type=msg.RECIPIENT_TYPE_CC)Làm thế nào để tôi nhúng một MSG bên trong khác?
Sử dụng MapiMessage.add_embedded_message_attachment(), vượt qua nội bộ MapiMessage Đối tượng như là đối số đầu tiên:
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")