กรองข้อความจากกล่องจดหมาย Exchange
Aspose.Email for C++ ช่วยให้นักพัฒนาสามารถกรองข้อความในกล่องจดหมาย Exchange โดยใช้ IEWSClient, MailQuery, และ ExchangeQueryBuilder. คุณสามารถกรองข้อความตามวันที่, ผู้ส่ง, โดเมน, MessageID, การแจ้งการส่ง, และเกณฑ์อื่น ๆ มากมาย.
เพื่อดึงข้อความจากโฟลเดอร์เพื่อการประมวลผลต่อไป, IEWSClient. มีเมธอดต่อไปนี้:
- ListMessages() - ดึงข้อความทั้งหมดจากกล่องเมล.
- ListMessages() overload - คืนค่าเฉพาะข้อความที่ตรงกับเงื่อนไขที่กำหนด รับค่า MailQuery ซึ่งกำหนดกฎการกรองเช่น คำสำคัญในหัวเรื่อง, ช่วงวันที่, และการกรองตามที่อยู่.
กรองข้อความด้วย IEWSClient
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีค้นหาและดึงอีเมลเฉพาะจาก Exchange Server โดยใช้ Exchange Web Services (EWS) กับ Aspose.Email for C++. มันแสดงกระบวนการเต็มรูปแบบของการเชื่อมต่อกับเซิร์ฟเวอร์ Exchange (Office 365 ในกรณีนี้), สร้าง query ค้นหาเพื่อหาเมสเสจที่มี "Newsletter" ในหัวเรื่องที่มาถึงวันนี้, เรียกใช้ query กับกล่องขาเข้า, ดึงเมสเสจที่ตรงกัน, และจัดการอายุการเชื่อมต่อพร้อมการจัดการข้อผิดพลาดอย่างเหมาะสม.
- เชื่อมต่อกับเซิร์ฟเวอร์ Exchange ด้วย IEWSClient.
- สร้าง MailQuery หรือ ExchangeQueryBuilder และกำหนดเงื่อนไขการกรอง.
- เรียก ListMessages(folderUri, query) เพื่อรับผลลัพธ์ที่กรอง.
กรองข้อความตามเกณฑ์
ตัวอย่างโค้ดด้านบนกรองข้อความตามหัวข้ออีเมลและวันที่ คุณสามารถกรองด้วยคุณสมบัติอื่น ๆ ได้เช่นกัน ด้านล่างนี้เป็นตัวอย่างการตั้งเงื่อนไขโดยใช้ MailQuery.
กรองโดยวันที่ของวันนี้
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างคิวรีเพื่อค้นหาอีเมลที่มาถึงวันนี้.
กรองโดยช่วงวันที่
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างคิวรีเพื่อค้นหาอีเมลที่มาภายใน 7 วันที่ผ่านมา.
กรองโดยผู้ส่งเฉพาะ
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างคิวรีเพื่อค้นหาอีเมลจากผู้ส่งที่ระบุ.
กรองโดยโดเมน
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างคิวรีเพื่อค้นหาอีเมลจากโดเมนที่ระบุ.
กรองโดยผู้รับ
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างคิวรีเพื่อค้นหาอีเมลที่ส่งถึงผู้รับที่ระบุ.
กรองโดย MessageID
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างคิวรีเพื่อค้นหาอีเมลเฉพาะโดย MessageId ของมัน.
กรอง Mail Delivery Notifications
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างคิวรีเพื่อค้นหา Mail Delivery Notifications (MDNs).
กรองตามขนาดข้อความ
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างคิวรีเพื่อค้นหาอีเมลที่มีขนาดใหญ่กว่าที่ระบุ.
สร้างคิวรีที่ซับซ้อน
เมื่อใช้ MailQueryBuilder หรือ ExchangeQueryBuilder, แต่ละคุณสมบัติที่คุณตั้งค่าจะสร้างเงื่อนไขการกรอง หากเงื่อนไขเหล่านี้กำหนดในคำสั่งแยกต่างหาก จะถูกรวมด้วย logical AND หมายความว่าต้องตรงกับเงื่อนไขทั้งหมดจึงจะคืนข้อความ.
ซึ่งทำให้นักพัฒนาสร้างฟิลเตอร์ที่แม่นยำเช่น:
- อีเมลภายในช่วงวันที่
- อีเมลจากโดเมนเฉพาะ
- อีเมลที่ตรงกับหลายเกณฑ์พร้อมกัน
รวมคิวรีด้วย AND
การใช้คุณสมบัติ builder หลายอย่างต่อเนื่องจะสร้างการทำงาน AND โดยอัตโนมัติ.
ตัวอย่างต่อไปนี้ดึงข้อความที่:
- มาจากโดเมนเฉพาะ
- มาถึงก่อนวันนี้
- มาถึงภายในเจ็ดวันที่ผ่านมา
รวมคิวรีด้วย OR
เพื่อให้ตรงกับข้อความที่เป็นไปตามเงื่อนไขใดเงื่อนไขหนึ่งในสอง, ใช้เมธอด Or().
ตัวอย่างต่อไปนี้ดึงข้อความที่:
- มี “test” ในหัวเรื่อง, หรือ
- ถูกส่งโดย “noreply@host.com”
การกรองอีเมลแบบแยกแยะตัวพิมพ์ใหญ่-เล็ก
คุณสามารถใช้การกรองแบบคำนึงถึงตัวพิมพ์ใหญ่/เล็กหรือไม่คำนึงเมื่อสอบถามข้อความจากกล่องจดหมาย Exchange เพื่อควบคุมพฤติกรรมนี้ ใช้แฟล็ก IgnoreCase ที่มีในเมธอดกรอง การใส่ค่า true จะเปิดใช้งานการจับคู่แบบไม่คำนึงถึงตัวพิมพ์ใหญ่/เล็ก.
ตัวอย่างด้านล่างกรองข้อความที่:
- มีคำว่า "Newsletter" ในหัวเรื่อง (ไม่สนใจตัวพิมพ์ใหญ่/เล็ก)
- มาถึงวันนี้
การแบ่งหน้าในการกรองข้อความ
เมื่อทำงานกับกล่องจดหมาย Exchange ขนาดใหญ่, การแบ่งหน้า (paging) ช่วยให้คุณดึงข้อความเป็นชุดย่อยที่เล็กและจัดการได้ง่าย. ListMessagesByPage เมธอดของ IEWSClient คืนผลลัพธ์เป็นหน้าตามขนาดหน้าที่กำหนดและเกณฑ์คิวรี.
ตัวอย่างด้านล่างแสดงวิธี:
- สร้างฟิลเตอร์โดยใช้ MailQueryBuilder.
- ดึงผลลัพธ์เป็นหน้าต่าง ๆ.
- วนลูปผ่านทุกหน้า hingga หน้าสุดท้าย.
- นับจำนวนข้อความที่ตรงทั้งหมด.