การเขียนโปรแกรมด้วย Thunderbird

การอ่านข้อความ

Mozilla Thunderbird เป็นโปรแกรมอีเมลโอเพนซอร์สที่สามารถทำงานข้ามแพลตฟอร์ม พัฒนาจาก Mozilla Foundation. มันจัดเก็บอีเมลในโครงสร้างไฟล์ของตนเองโดยจัดการดัชนีข้อความและโฟลเดอร์ย่อยผ่านรูปแบบไฟล์ที่เป็นกรรมสิทธิ์. Aspose.Email สามารถทำงานกับโครงสร้างการจัดเก็บเมล์ของ Thunderbird ได้. คลาส MboxrdStorageReader ช่วยให้นักพัฒนาสามารถอ่านข้อความจากไฟล์จัดเก็บเมล์ของ Mozilla Thunderbird. บทความนี้แสดงวิธีอ่านข้อความจากการจัดเก็บอีเมลของ Thunderbird:

  1. เปิดไฟล์จัดเก็บของ Thunderbird
  2. สร้างอินสแตนซ์ของคลาส MboxrdStorageReader และส่งสตรีมที่กล่าวถึงข้างต้นไปยังคอนสตรักเตอร์.
  3. เรียก read_next_message() เพื่อรับข้อความแรก.
  4. ใช้ read_next_message() เดียวกันในลูป while เพื่ออ่านข้อความทั้งหมด.
  5. ปิดสตรีมทั้งหมด.

โค้ดตัวอย่างต่อไปนี้แสดงวิธีอ่านข้อความทั้งหมดจากที่เก็บเมลของ 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. เพื่อเขียนข้อความ:

  1. เปิดไฟล์จัดเก็บของ Thunderbird ด้วย FileStream.
  2. สร้างอินสแตนซ์ของคลาส MboxrdStorageWriter และส่งสตรีมที่กล่าวถึงข้างต้นไปยังคอนสตรักเตอร์.
  3. เตรียมข้อความใหม่โดยใช้คลาส MailMessage.
  4. เรียกเมธอด write_message() และส่งอินสแตนซ์ MailMessage ด้านบนเพื่อเพิ่มข้อความเข้าไปในพื้นที่จัดเก็บของ Thunderbird.
  5. ปิดสตรีมทั้งหมด.

โค้ดตัวอย่างต่อไปนี้จะแสดงวิธีเขียนข้อความไปยังที่เก็บเมลของ Thunderbird.

รับจำนวนข้อความทั้งหมดจากไฟล์ MBox

คลาส MboxrdStorageReader มีความสามารถในการอ่านจำนวนรายการที่มีในไฟล์ MBox ซึ่งสามารถใช้พัฒนาแอปพลิเคชันเพื่อแสดงความคืบหน้าของการทำงานขณะประมวลผลไฟล์ดังกล่าวได้.

รับขนาดข้อความปัจจุบัน