ส่ง, อ่าน, และจัดระเบียบข้อความบน Exchange Server
ดึงข้อมูลกล่องจดหมาย Exchange ด้วย EWS
Aspose.Email อนุญาตให้คุณดึงรายละเอียดกล่องจดหมายจาก Microsoft Exchange โดยใช้ IEWSClient คลาส. โดยการเรียก GetMailboxInfo() เมธอด, ไคลเอนต์จะคืนค่า ExchangeMailboxInfo อ็อบเจ็กต์ที่มี URI โฟลเดอร์ที่เป็นประโยชน์เช่น Mailbox, Inbox, Drafts, และ Sent Items.
เพื่อเชื่อมต่อกับ Exchange Server ด้วย Exchange Web Services (EWS), ใช้ IEWSClient คลาสนี้ใช้ EWS เพื่อเชื่อมต่อและจัดการรายการบน Exchange Server.
โค้ดสแน็ปต่อไปนี้แสดงวิธี รับข้อมูลกล่องจดหมาย โดยใช้ Exchange Web Services.
ส่งข้อความอีเมลผ่าน EWS
คุณสามารถส่งอีเมลผ่าน Exchange โดยเรียก IEWSClient->Send() เมธอด ใช้รับ MailMessage อ็อบเจ็กต์และส่งตรงผ่านเซิร์ฟเวอร์โดยใช้ EWS.
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีส่งอีเมล HTML ผ่าน Exchange Server โดยใช้ Exchange Web Services (EWS) กับ Aspose.Email for C++. มันแสดงขั้นตอนครบถ้วนของการเชื่อมต่อกับ Exchange, สร้างข้อความเมลพร้อมผู้ส่ง, ผู้รับ, หัวเรื่อง, และเนื้อหา HTML, แล้วส่งข้อความโดยใช้เมธอด Send ของไคลเอนต์ EWS.
การอ่านอีเมลจากกล่องจดหมายของผู้ใช้คนอื่น
บัญชีบางบัญชีบนเซิร์ฟเวอร์ Exchange มีสิทธิ์เข้าถึงหลายกล่องจดหมาย และผู้ใช้บางคนมีหลายบัญชีอีเมลบนเซิร์ฟเวอร์ Exchange เดียวกัน ในทั้งสองกรณีผู้ใช้สามารถเข้าถึงกล่องจดหมายของผู้ใช้อื่นด้วย Aspose.Email API มอบกลไกสำหรับการเข้าถึงโฟลเดอร์และอีเมลจากกล่องจดหมายอื่นโดยใช้ IEWSClient class. ความสามารถนี้สามารถทำได้โดยใช้เวอร์ชันโอเวอร์โหลดของ GetMailboxInfo() เมธอดและให้ที่อยู่อีเมลของผู้ใช้เป็นพารามิเตอร์.
โค้ดตัวอย่างต่อไปนี้แสดงวิธีอ่านอีเมลโดยใช้ IEWSClient คลาส.
แสดงรายการข้อความด้วย EWS
Aspose.Email for C++ ช่วยให้คุณดึงข้อมูลเมทาดาต้าของข้อความจากกล่องจดหมายของ Exchange Server ผ่าน IEWSClient. โดยใช้ EWS‑based ListMessages ด้วย API คุณสามารถแสดงรายการข้อความจากโฟลเดอร์ใดก็ได้ เรียกดูข้อมูลเมทาดาต้าของข้อความ และทำการแบ่งหน้าได้สำหรับกล่องจดหมายขนาดใหญ่.
แสดงรายการข้อความจากกล่องขาเข้า
ใช้ ListMessages เพื่อดึงข้อมูลพื้นฐานของข้อความ เช่น เรื่อง ผู้ส่ง ผู้รับ และ ID ของข้อความจากกล่องขาเข้าหรือโฟลเดอร์ใดก็ได้.
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแสดงรายการและแสดงข้อมูลพื้นฐานของข้อความทั้งหมดใน Exchange Server.
- สร้างอินสแตนซ์ของ IEWSClient.
- เรียก ListMessages ด้วย URI ของโฟลเดอร์เป้าหมาย.
- วนผ่าน ExchangeMessageInfoCollection.
แสดงรายการข้อความจากโฟลเดอร์ใดก็ได้
ListMessages รับ URI ของโฟลเดอร์ที่ถูกต้องใดก็ได้ ทำให้คุณสามารถแสดงรายการรายการจากโฟลเดอร์รายการที่ลบ, ฉบับร่าง, รายการที่ส่งแล้ว หรือโฟลเดอร์ที่กำหนดเอง ใช้ IEWSClient->get_MailboxInfo->xxxFolderUri คุณสมบัติสำหรับรับ URI ของโฟลเดอร์ต่างๆ.
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเข้าถึง URI ของโฟลเดอร์ Exchange Server ต่างๆ และดึงข้อความจากโฟลเดอร์ที่ระบุ.
การแบ่งหน้าในรายการข้อความ
สำหรับกล่องจดหมายขนาดใหญ่ ให้ใช้ ListMessagesByPage เพื่อโหลดข้อความเป็นบล็อกย่อย
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีทำการแบ่งหน้าเพื่อดึงข้อความจำนวนมากจากกล่องขาเข้าของ Exchange Server.
- แรกเริ่ม มันสร้างข้อความทดสอบหลายข้อความบนเซิร์ฟเวอร์.
- จากนั้น ใช้ ListMessagesByPage วิธีการดึงข้อความเป็นชุดย่อย (5 ข้อความต่อหน้าในกรณีนี้) โดยวนผ่านทุกหน้าจนกระทั่งถึงหน้าสุดท้าย.
- สุดท้าย โค้ดตรวจสอบว่าข้อความทั้งหมดถูกดึงสำเร็จโดยนับจำนวนรายการทั้งหมดในทุกหน้า.
รับข้อมูลประเภทข้อความ
ใช้ ExchangeMessageInfo->MessageInfoType เพื่อกำหนดประเภทข้อความ Exchange พื้นฐาน (เช่น อีเมล, คำขอประชุม ฯลฯ).
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเชื่อมต่อกับ Exchange Server และดึงข้อมูลประเภทข้อความจากโฟลเดอร์รายการที่ลบ.
บันทึกข้อความโดยใช้ Exchange Web Services (EWS)
Aspose.Email ช่วยให้คุณ ดึงข้อความจากกล่องจดหมายของ Exchange Server และ บันทึกเป็นหลายรูปแบบ เช่น EML, สตรีมในหน่วยความจำ, และ MSG ตัวอย่างด้านล่างแสดงวิธีดึงข้อมูลข้อความและจัดเก็บข้อความโดยใช้ IEWSClient API.
บันทึกข้อความเป็นไฟล์ EML
เพื่อบันทึกข้อความในกล่องจดหมายเป็นไฟล์ EML:
- สร้าง IEWSClient อินสแตนซ์โดยใช้ข้อมูลรับรองที่ถูกต้อง.
- เรียก ListMessages() เพื่อดึง ExchangeMessagesInfoCollection.
- วนลูปผ่านคอลเลกชันเพื่อเข้าถึง URI เฉพาะของแต่ละข้อความ.
- เรียก SaveMessage() เพื่อเก็บบันทึกแต่ละข้อความลงดิสก์ในรูปแบบ EML.
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีบันทึกข้อความอีเมลจากกล่องขาเข้าของ Exchange Server เป็นไฟล์ EML แยกแต่ละไฟล์บนเครื่องโดยใช้ Aspose.Email for C++.
บันทึกข้อความลงสตรีมหน่วยความจำ
แทนที่จะเขียนลงดิสก์ คุณสามารถบันทึกข้อความลงสตรีมหน่วยความจำ—มีประโยชน์สำหรับการเก็บอีเมลในฐานข้อมูลหรือประมวลผลในหน่วยความจำ.
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีบันทึกข้อความอีเมลจากกล่องขาเข้าของ Exchange Server ลงในสตรีมหน่วยความจำ.
บันทึกข้อความในรูปแบบ MSG
เพื่อบันทึกข้อความเป็น MSG:
- ดึงข้อความโดยใช้ FetchMessage(), ซึ่งคืนค่า MailMessage.
- เรียก MailMessage::Save() พร้อมตัวเลือกการบันทึก MSG.
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีดึงและบันทึกข้อความอีเมลจากกล่องขาเข้าของ Exchange Server เป็นไฟล์รูปแบบ Outlook MSG.
ดึงรายละเอียดข้อความโดยใช้ URI ของข้อความ
เมื่อมีเพียง URI ที่ไม่ซ้ำของข้อความเท่านั้น คุณยังสามารถดึงข้อความเต็มได้ ExchangeMessageInfo อ็อบเจกต์. IEWSClient::ListMessages() การโอเวอร์โหลดรับรายการ ID ของข้อความ (URIs) และคืนค่า ExchangeMessageInfoCollection. ใช้ฟีเจอร์นี้เมื่อคุณเก็บหรือรับ URI ของข้อความจากภายนอกและต้องการโหลดเมทาดาต้า (เรื่อง, ผู้ส่ง, ขนาด ฯลฯ) โดยไม่ต้องดึงข้อความเต็ม.
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างข้อความอีเมลหลายข้อความบน Exchange Server และจากนั้นดึงข้อมูลข้อความโดยใช้ตัวระบุที่ไม่ซ้ำกัน.
ดึงเนื้อหาข้อความเต็ม
ListMessages() คืนค่า ข้อมูลสรุป (เรื่อง, ผู้ส่ง, ID) เพื่อโหลด เนื้อหาข้อความเต็ม — เนื้อหา, ส่วนหัว, ไฟล์แนบ — ใช้ FetchMessage().
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีดึงข้อความเต็มจากกล่องขาเข้าของ Exchange Server และสกัดข้อมูลไฟล์แนบ:
- สร้าง IEWSClient อินสแตนซ์
- เรียก ListMessages() เพื่อรับเมทาดาต้าข้อความพื้นฐาน.
- สกัด UniqueUri ของแต่ละข้อความ.
- เรียก FetchMessage() เพื่อดึงรายละเอียดเต็มของข้อความ.
ดึงขนาดข้อความ (โดยไม่ดาวน์โหลดข้อความเต็ม)
Aspose.Email ให้ข้อมูลขนาดของข้อความโดยไม่ต้องดึงอีเมลทั้งหมด ผ่าน ExchangeMessageInfo::Size คุณสมบัติ.
นี่มีประโยชน์สำหรับ:
- สถิติของกล่องจดหมาย
- การคำนวณโควตา
- การกรองข้อความขนาดใหญ่ก่อนดาวน์โหลด
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแสดงรายการและแสดงเมทาดาต้าข้อความรวมถึงขนาดจากกล่องขาเข้าของ Exchange Server.
ดาวน์โหลดอีเมลจากโฟลเดอร์สาธารณะของ Exchange
โฟลเดอร์สาธารณะของ Exchange อนุญาตให้เก็บข้อความที่แชร์ระหว่างผู้ใช้
Aspose.Email IEWSClient ทำให้คุณสามารถดำเนินการต่อไปนี้กับโฟลเดอร์และข้อความที่เก็บอยู่ในนั้น:
- แสดงรายการโฟลเดอร์สาธารณะ
- เรียกดูโฟลเดอร์ย่อยอย่างต่อเนื่อง
- ดาวน์โหลดข้อความและบันทึก (เช่น เป็นไฟล์ MSG)
หมายเหตุ: จำเป็นต้องใช้ Microsoft Exchange Server 2007 หรือใหม่กว่า เนื่องจากเวอร์ชันก่อนหน้าไม่สนับสนุน EWS.
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีดาวน์โหลดข้อความจากโฟลเดอร์สาธารณะทั้งหมดและโฟลเดอร์ย่อยบน Exchange Server อย่างต่อเนื่อง และบันทึกเป็นไฟล์ Outlook MSG บนเครื่อง.
ย้ายข้อความระหว่างโฟลเดอร์ Exchange
คุณสามารถย้ายข้อความจากโฟลเดอร์ Exchange หนึ่งไปยังอีกโฟลเดอร์หนึ่งโดยใช้ IEWSClient::MoveItem เมธอด ต้องการ:
- URI ที่ไม่ซ้ำของข้อความที่ต้องย้าย.
- URI ที่ไม่ซ้ำของโฟลเดอร์ปลายทาง.
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีกรองและย้ายข้อความอีเมลเฉพาะจากกล่องขาเข้าของ Exchange Server ไปยังโฟลเดอร์อื่นตามเกณฑ์เนื้อหา.
- เชื่อมต่อไปยัง Exchange Server ด้วยข้อมูลรับรอง EWS.
- รับข้อมูลกล่องจดหมาย (URI ของโฟลเดอร์).
- แสดงรายการทุกข้อความจากกล่องขาเข้า.
- วนลูปผ่านแต่ละข้อความ.
- ตรวจสอบว่าหัวข้อมี "process this message" หรือไม่.
- ย้ายข้อความที่ตรงกันไปยังโฟลเดอร์รายการที่ลบ
- แสดงการยืนยันสำหรับแต่ละข้อความที่ย้าย
ลบข้อความจากโฟลเดอร์ Exchange
คุณสามารถลบอีเมลจากโฟลเดอร์ได้โดยใช้ IEWSClient->DeleteMessage เมธอดนี้รับ URI เฉพาะของข้อความเป็นพารามิเตอร์
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีกรองและลบข้อความอีเมลเฉพาะจากกล่องขาเข้าของ Exchange Server ตามเกณฑ์หัวเรื่อง.
- วนลูปผ่านข้อความในกล่องขาเข้า.
- ประมวลผลข้อความตามเกณฑ์บางอย่าง (ในตัวอย่างนี้เราค้นหาคำสำคัญในหัวเรื่องของข้อความ)
- ลบข้อความที่ตรงกัน.
คัดลอกข้อความไปยังโฟลเดอร์ Exchange อื่น
ใช้ IEWSClient::CopyItem เพื่อทำสำเนาข้อความไปยังโฟลเดอร์อื่น เวอร์ชันโอเวอร์โหลดจะคืนค่า URI ของสำเนาที่สร้างใหม่.
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างข้อความอีเมลบน Exchange Server และคัดลอกไปยังโฟลเดอร์อื่น.