การเขียนโปรแกรมด้วย Thunderbird
การอ่านข้อความ
Mozilla Thunderbird เป็นโปรแกรมอีเมลโอเพนซอร์สที่สามารถทำงานข้ามแพลตฟอร์ม พัฒนาจาก Mozilla Foundation. มันจัดเก็บอีเมลในโครงสร้างไฟล์ของตนเองโดยจัดการดัชนีข้อความและโฟลเดอร์ย่อยผ่านรูปแบบไฟล์ที่เป็นกรรมสิทธิ์. Aspose.Email สามารถทำงานกับโครงสร้างการจัดเก็บเมล์ของ Thunderbird ได้. คลาส MboxrdStorageReader ช่วยให้นักพัฒนาสามารถอ่านข้อความจากไฟล์จัดเก็บเมล์ของ Mozilla Thunderbird. บทความนี้แสดงวิธีอ่านข้อความจากการจัดเก็บอีเมลของ Thunderbird:
- เปิดไฟล์จัดเก็บของ Thunderbird
- สร้างอินสแตนซ์ของคลาส MboxrdStorageReader และส่งสตรีมที่กล่าวถึงข้างต้นไปยังคอนสตรักเตอร์.
- เรียก read_next_message() เพื่อรับข้อความแรก.
- ใช้ read_next_message() เดียวกันในลูป while เพื่ออ่านข้อความทั้งหมด.
- ปิดสตรีมทั้งหมด.
โค้ดตัวอย่างต่อไปนี้แสดงวิธีอ่านข้อความทั้งหมดจากที่เก็บเมลของ Thunderbird.
ดึงคุณสมบัติของข้อความ
เพื่ออ่านและดึงข้อมูลจากไฟล์ Mbox, Aspose.Email มีให้ MboxStorageReader คลาสสำหรับสร้างอ็อบเจ็กต์ผู้อ่านสำหรับไฟล์ Mbox และ MboxLoadOptions คลาสสำหรับโหลดไฟล์ คุณสมบัติต่อไปนี้ของ MboxMessageInfo คลาสสามารถใช้เพื่อเข้าถึงและแสดงรายละเอียดของข้อความเฉพาะ:
- ‘date’ - รับวันที่ของข้อความ.
- ‘from_address’ - รับที่อยู่ผู้ส่ง.
- ‘subject’ - รับหัวเรื่องของข้อความ.
- ’to’ - รับคอลเลกชันที่อยู่ที่มีผู้รับของข้อความ.
- ‘cc’ - รับคอลเลกชันที่อยู่ที่มีผู้รับ CC.
- ‘bcc’ - รับคอลเลกชันที่อยู่ที่มีผู้รับ BCC ของข้อความ.
ตัวอย่างโค้ดต่อไปนี้แสดงการใช้คุณสมบัติเหล่านี้เพื่ออ่านและสกัดข้อมูลข้อความจากไฟล์ Mbox:
import aspose.email as ae
reader = ae.storage.mbox.MboxStorageReader.create_reader(file_name, ae.storage.mbox.MboxLoadOptions())
for mbox_message_info in reader.enumerate_message_info():
print(f"Subject: {mbox_message_info.subject}")
print(f"Date: {mbox_message_info.date}")
print(f"From: {mbox_message_info.from_address}")
print(f"To: {mbox_message_info.to}")
print(f"CC: {mbox_message_info.cc}")
print(f"Bcc: {mbox_message_info.bcc}")
สกัดข้อความจาก MBOX ตามรหัสประจำตัว
เพื่ออ่านข้อความจากไฟล์ MBOX, Aspose.Email ให้เมธอด ‘create_reader()’ ของ MboxStorageReader คลาสเพื่อสร้างอ็อบเจ็กต์อ่านสำหรับไฟล์ ซึ่งรับชื่อไฟล์และ MboxLoadOptions เป็นอาร์กิวเมนต์ ทำให้ผู้ใช้สามารถโหลดไฟล์ MBOX ด้วยตัวเลือกเฉพาะได้หากต้องการ.
เพื่อสกัดข้อความ จะใช้เมธอดและคุณสมบัติดังต่อไปนี้:
- เมธอด ’enumerate_message_info()’ ของ MboxStorageReader คลาส - วนซ้ำผ่านข้อความแต่ละข้อความในไฟล์ MBOX.
- เมธอด ’extract_message()" ของ MboxStorageReader คลาส - สกัดข้อความแต่ละรายการโดยใช้ Entry ID.
- คุณสมบัติ ’entry_id’ ของ MboxMessageInfo คลาส - รับตัวระบุเอนทรี.
สุดท้าย ข้อความจะถูกแปลงเป็นฟอร์แมต EML ด้วยการใช้ EmlLoadOptions.
ตัวอย่างโค้ดด้านล่างแสดงการใช้ฟีเจอร์เหล่านี้เพื่ออ่านและสกัดข้อความจากไฟล์ MBOX:
import aspose.email as ae
reader = ae.storage.mbox.MboxStorageReader.create_reader("my.mbox", ae.storage.mbox.MboxLoadOptions())
for mbox_message_info in reader.enumerate_message_info():
eml = reader.extract_message(mbox_message_info.entry_id, ae.EmlLoadOptions())
การกำหนดค่าตัวเลือกการโหลดเมื่อตรวจสอบข้อความจาก MBOX
กับ Aspose.Email EmlLoadOptions คลาส, คุณสามารถระบุตัวเลือกเพิ่มเติมเมื่อโหลด MailMessage จากฟอร์แมต Eml. ตัวอย่างเช่น คุณสามารถตั้งค่าตัวเลือกเพื่อรักษาไฟล์แนบ TNEF ขณะโหลดไฟล์ EML ด้วยคุณสมบัติ ‘preserve_tnef_attachments’ ของ EmlLoadOptions คลาส.
คุณสามารถอ่านข้อความอีเมลถัดไปจากไฟล์ mbox โดยใช้ตัวเลือกการโหลดที่ระบุพร้อมเมธอด ‘read_next_message’ ของ MboxStorageReader คลาสและแปลงไฟล์เป็นรูปแบบ PST ด้วยเมธอด ‘mbox_to_pst’ ของ MailStorageConverter คลาส .
ตัวอย่างโค้ดด้านล่างแสดงการใช้เมธอดและคุณสมบัติเหล่านี้เพื่อทำงานกับไฟล์จัดเก็บอีเมล รวมถึงการอ่านข้อความจากฟอร์แมต mbox, การรักษาไฟล์แนบ TNEF, และการแปลงข้อความจากฟอร์แมต mbox ไปเป็น pst:
import aspose.email as ae
reader = ae.storage.mbox.MboxrdStorageReader(fileName, ae.storage.mbox.MboxLoadOptions())
# Read messages preserving tnef attachments.
load_options = ae.EmlLoadOptions()
load_options.preserve_tnef_attachments = True
eml = reader.read_next_message(load_options)
ae.storage.MailStorageConverter.MboxMessageOptions(load_options)
# Convert messages from mbox to pst preserving tnef attachments.
pst = ae.storage.MailStorageConverter.mbox_to_pst("Input.mbox", "Output.pst")
การตั้งค่าการเข้ารหัสข้อความที่ต้องการขณะโหลดไฟล์ Mbox เพื่อการอ่าน
คุณสามารถระบุการเข้ารหัสข้อความที่จะใช้ขณะโหลดไฟล์ MBOX. คุณสมบัติ ‘preferred_text_encoding’ มีให้สำหรับ MboxLoadOptions คลาสกำหนดตัวเลือกเพิ่มเติมและทำให้แน่ใจว่าข้อความที่มีเนื้อหาเข้ารหัสจะถูกอ่านและประมวลผลอย่างถูกต้อง.
โค้ดสแนปท์ต่อไปนี้แสดงวิธีใช้ฟีเจอร์นี้ในโครงการ:
import aspose.email as ae
load_options = ae.storage.mbox.MboxLoadOptions()
load_options.preferred_text_encoding = 'utf-8'
reader = ae.storage.mbox.MboxrdStorageReader("sample.mbox", load_options)
message = reader.read_next_message()
การแปลง MBOX เป็น PST พร้อมรักษาหรือเอาลายเซ็นออก
เพื่อลบลายเซ็นจากไฟล์ระหว่างกระบวนการแปลง ให้ตั้งค่าคุณสมบัติ MboxToPstConversionOptions.remove_signature เป็น true.
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการใช้คุณสมบัตินี้:
import aspose.email as ae
personalStorage = ae.storage.pst.PersonalStorage.create("target.pst", ae.storage.pst.FileFormatVersion.UNICODE)
conversion_options = ae.storage.MboxToPstConversionOptions()
conversion_options.remove_signature = True
ae.storage.MailStorageConverter.mbox_to_pst( ae.storage.mbox.MboxrdStorageReader("source.mbox", ae.storage.mbox.MboxLoadOptions()), personalStorage, "Inbox", conversion_options)
การเขียนข้อความ
คลาส MboxrdStorageWriter ให้ความสามารถในการเขียนข้อความใหม่ลงในไฟล์จัดเก็บเมล์ของ Thunderbird. เพื่อเขียนข้อความ:
- เปิดไฟล์จัดเก็บของ Thunderbird ด้วย FileStream.
- สร้างอินสแตนซ์ของคลาส MboxrdStorageWriter และส่งสตรีมที่กล่าวถึงข้างต้นไปยังคอนสตรักเตอร์.
- เตรียมข้อความใหม่โดยใช้คลาส MailMessage.
- เรียกเมธอด write_message() และส่งอินสแตนซ์ MailMessage ด้านบนเพื่อเพิ่มข้อความเข้าไปในพื้นที่จัดเก็บของ Thunderbird.
- ปิดสตรีมทั้งหมด.
โค้ดตัวอย่างต่อไปนี้จะแสดงวิธีเขียนข้อความไปยังที่เก็บเมลของ Thunderbird.
รับจำนวนข้อความทั้งหมดจากไฟล์ MBox
คลาส MboxrdStorageReader มีความสามารถในการอ่านจำนวนรายการที่มีในไฟล์ MBox ซึ่งสามารถใช้พัฒนาแอปพลิเคชันเพื่อแสดงความคืบหน้าของการทำงานขณะประมวลผลไฟล์ดังกล่าวได้.