ดึงข้อความที่กรองจากไฟล์ MBOX ใน Python
กรองข้อความ MBOX ตามหัวเรื่องและวันที่
Aspose.Email สำหรับ Python ผ่าน .NET มีความสามารถในการกรองหรือค้นหาข้อความภายในไฟล์ MBOX โดยใช้คำค้น เมธอดต่อไปนี้ช่วยให้คุณดึงข้อความที่ตรงกับเกณฑ์เฉพาะได้เท่านั้น:
- EnumerateMessages(MailQuery query) - คืนค่าคอลเลกชันที่สามารถวนได้ของ MailMessage อินสแตนซ์ที่ตรงกับคำค้นที่ระบุ.
- EnumerateMessageInfo(MailQuery query) - คืนค่าคอลเลกชันที่สามารถวนได้ของ MboxMessageInfo อินสแตนซ์ที่ตรงกับคำค้นที่ระบุ.
ตัวอย่างโค้ดด้านล่างจะแสดงให้คุณเห็นวิธีใช้เมธอดเหล่านี้ในการกรองข้อความ:
import datetime
from aspose.email.storage.mbox import MboxStorageReader, MboxLoadOptions
from aspose.email import MailQueryBuilder
# Create an MBOX reader with load options
reader = MboxStorageReader.create_reader("input.mbox", MboxLoadOptions())
# Build the mail query
mqb = MailQueryBuilder()
mqb.subject.contains("Project Update")
mqb.sent_date.before(datetime.date.today())
# Iterate over matching messages
for message in reader.enumerate_messages(mqb.get_query()):
print("Subject:", message.subject)
การดึงข้อมูล MBOX แบบแบ่งหน้า
Aspose.Email สำหรับ Python ผ่าน .NET รองรับการอ่านไฟล์ MBOX แบบแบ่งหน้า ช่วยให้ประมวลผลเอกสารอีเมลขนาดใหญ่ได้อย่างมีประสิทธิภาพ แทนการโหลดข้อความทั้งหมดเข้าสหน่วยความจำ คุณสามารถดึงข้อความเป็นชุดเล็ก ๆ ที่จัดการได้ นี่มีประโยชน์อย่างยิ่งเมื่อจัดการกับไฟล์เก็บข้อมูลขนาดใหญ่มาก ช่วยลดการใช้หน่วยความจำและปรับปรุงประสิทธิภาพในการประมวลผล
เมธอดต่อไปนี้สามารถใช้สำหรับการดึงข้อความ MBOX แบบแบ่งหน้า:
-
enumerate_messages(start_index, count) - ดึงจำนวนที่ระบุของ MailMessage อินสแตนซ์.
-
enumerate_message_info(start_index, count) - ดึงข้อมูลที่สอดคล้อง MboxMessageInfo อ็อบเจกต์.
โค้ดตัวอย่างต่อไปนี้แสดงวิธีอ่านและดึงข้อความจากไฟล์ MBOX เป็นชิ้นส่วนที่จัดการได้โดยใช้ไลบรารี Aspose.Email:
from aspose.email.storage.mbox import MboxStorageReader, MboxLoadOptions
# Initialize MBOX reader with load options
reader = MboxStorageReader.create_reader("input.mbox", MboxLoadOptions())
# Define pagination parameters
start_index = 0
count = 10 # Retrieve messages in batches of 10
# Enumerate and display messages in the current batch
for message in reader.enumerate_messages(start_index, count):
print("Subject:", message.subject)