กรองข้อความจากกล่องจดหมาย 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 กับกล่องขาเข้า, ดึงเมสเสจที่ตรงกัน, และจัดการอายุการเชื่อมต่อพร้อมการจัดการข้อผิดพลาดอย่างเหมาะสม.

  1. เชื่อมต่อกับเซิร์ฟเวอร์ Exchange ด้วย IEWSClient.
  2. สร้าง MailQuery หรือ ExchangeQueryBuilder และกำหนดเงื่อนไขการกรอง.
  3. เรียก 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 คืนผลลัพธ์เป็นหน้าตามขนาดหน้าที่กำหนดและเกณฑ์คิวรี.

ตัวอย่างด้านล่างแสดงวิธี:

  1. สร้างฟิลเตอร์โดยใช้ MailQueryBuilder.
  2. ดึงผลลัพธ์เป็นหน้าต่าง ๆ.
  3. วนลูปผ่านทุกหน้า hingga หน้าสุดท้าย.
  4. นับจำนวนข้อความที่ตรงทั้งหมด.