วิธีการเริ่มต้นด้วย Aspose.Email FOSS สําหรับ Python

วิธีการเริ่มต้นด้วย 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")

นี่

 ภาษาไทย