วิธีการเริ่มต้นด้วย Aspose.Email FOSS สําหรับ Python
aspose-email-foss สําหรับ Python เป็นห้องสมุดฟรีที่ได้รับอนุญาตจาก MIT เพื่อสร้างการอ่านและใช้งาน แปลงไฟล์ Outlook MSG และภาชนะ CFB – ไม่จําเป็นต้องใช้ Microsoft Office ไม่มีตัวแทน การขยายตัว Python จาก PyPI.
คู่มือขั้นตอนตามขั้นตอนนี้
ขั้นตอนที่ 1: ติดตั้งแพ็กเกจ
เพราะ .value เป็น property ไม่ใช่เมธอด การเรียก cell.value() พยายามเรียกค่าที่คืนกลับเป็นฟังก์ชัน ซึ่งทำให้เกิด TypeError. ควรใช้การกำหนดค่า หรือการเข้าถึงแอตทริบิวต์โดยตรงเสมอ:
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() เป็นผู้จัดการพื้นฐาน. Access the 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 รูปแบบ. เขียนผลให้ A .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 สองคน MapiMessage.create() เพื่อให้แน่ใจว่าคุณสมบัติของ string คือ บันทึกใน Unicode (PT_UNICODE) แทน ANSI ( PT_STRING8).
คำถามที่พบบ่อย
มี aspose-email-foss ต้องใช้ Microsoft Office หรือไม่?
ไม่. แคบลิขสิทธิ์เป็นอิสระอย่างสมบูรณ์ มันอ่านและเขียนรูปแบบไบนารี MSG และ CFB โดยธรรมชาติใน Python โดยไม่ต้องพึ่งพา Microsoft Office, COM Automation หรือ Win32 API.
ฉันสามารถใช้ห้องสมุดนี้บน Linux หรือ macOS ได้หรือไม่?
ใช่. aspose-email-foss เป็น Python สะอาดและทํางานบนแพลตฟอร์มใด ๆ ที่สนับสนุน Python 3.10 หรือรุ่นใหม่ขึ้นรวมถึง Windows, macOS, Linux, Docker และฟังก์ชั่นไร้เซิร์ฟเวอร์.
แคสติ้งฟรีสําหรับการใช้งานเชิงพาณิชย์หรือไม่?
ใช่ มันถูกปล่อยออกมาภายใต้ใบอนุญาต MIT คุณสามารถใช้แก้ไขและกระจายใหม่เพื่อวัตถุประสงค์ใด ๆ รวมถึงแอพพลิเคชันเชิงพาณิชย์โดยไม่มีค่าธรรมเนียมหรือข้อกําหนดการรับรองนอกเหนือจากข้อความของใบใบสมัคร.
ฉันจะเพิ่มผู้รับ CC และ BCC ได้อย่างไร?
การผ่าน recipient_type=msg.RECIPIENT_TYPE_CC หรือ msg.RECIPIENT_TYPE_BCC เป็นที่สาม ข้อตกลง 2 add_recipient():
message.add_recipient("bob@example.com", display_name="Bob", recipient_type=msg.RECIPIENT_TYPE_CC)ฉันจะแทรกหนึ่ง MSG ภายในอื่น ๆ ได้อย่างไร?
ใช้ MapiMessage.add_embedded_message_attachment(),ผ่านภายใน MapiMessage object เป็นข้ออ้างอิงแรก:
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")