Retrieve Emails using C# .NET

เมื่อสร้างแอปพลิเคชันจัดการอีเมล หนึ่งในขั้นตอนที่สำคัญคือการตั้งค่าฟังก์ชันการทำงานที่เชื่อถือได้และรวดเร็วในการเรียกคืนข้อความจากกล่องจดหมาย ในบทความนี้ เราจะสำรวจวิธีการใช้พลังของไลบรารี .NET เพื่อเรียกคืนอีเมลใน C# ผ่าน POP3, IMAP, EWS, Graph API และจากที่จัดเก็บกล่องจดหมายออฟไลน์ในรูปแบบต่างๆ โดยใช้ไฟล์ pst เป็นตัวอย่าง บทความนี้มีตัวอย่างโค้ดที่ชัดเจนซึ่งคุณสามารถใช้เพื่อทดสอบฟังก์ชันการทำงานของไลบรารี

.NET API to Retrieve Messages

ในการดึงข้อความจากเซิร์ฟเวอร์หรือที่จัดเก็บกล่องจดหมายใน C# เราจะใช้ Aspose.Email for .NET. นี่คือไลบรารี API ที่ทรงพลังซึ่งอนุญาตให้นักพัฒนาทำงานกับอีเมลในแอปพลิเคชัน .NET ของตน มันมีชุดฟีเจอร์ที่ครอบคลุมสำหรับการทำงานกับอีเมลในสถานการณ์ที่หลากหลาย มันทำให้การสร้าง การจัดการ และการแปลงข้อความอีเมลทำได้ง่าย รวมถึงการทำงานกับไฟล์แนบอีเมล ปฏิทิน รายชื่อผู้ติดต่อ และอื่นๆ รวมถึงการดึงข้อความจากกล่องจดหมายและจัดการเนื้อหาของพวกเขาตามความต้องการ คุณสามารถนำ API ไปใช้ในโปรเจกต์ของคุณได้อย่างง่ายดายหลังจาก ดาวน์โหลด DLL หรือทำการติดตั้งจาก NuGet โดยใช้คำสั่งต่อไปนี้:

PM> Install-Package Aspose.Email

Retrieve Emails via POP3

ด้วยโปรโตคอล POP3 อีเมลจะถูกดาวน์โหลดจากเซิร์ฟเวอร์ไปยังระบบท้องถิ่นของคุณ ทำให้เข้าถึงและจัดการได้ง่าย ฟังก์ชันการทำงานนี้สามารถรวมเข้ากับแอปพลิเคชันของคุณได้อย่างง่ายดาย คลาส Aspose.Email for .NET POP3Client ถูกใช้เพื่อสร้างวัตถุ POP3 client สำหรับการจัดการกับข้อความ

ตัวอย่างโค้ดและขั้นตอนด้านล่างจะแสดงให้คุณเห็นวิธีการใช้ลูกค้า POP3 เพื่อเชื่อมต่อกับเซิร์ฟเวอร์อีเมล POP3 ดึงรายการข้อความ และดึงเนื้อหาของข้อความ:

  1. ก่อนอื่น สร้างอินสแตนซ์ของวัตถุ POP3 client
  2. เนื่องจากโปรโตคอล POP3 ไม่มีการเข้ารหัสในตัว ทำให้การส่งข้อความอีเมลมีความเสี่ยงต่อการถูกดักจับและเข้าถึงโดยไม่ได้รับอนุญาต จึงกำหนดคุณสมบัติ SecurityOptions เพื่อใช้กลไกความปลอดภัยกับเซิร์ฟเวอร์
  3. ภายในลูป foreach โค้ดจะทำการวนซ้ำแต่ละข้อความในกล่องจดหมายและดึงเนื้อหาของข้อความโดยใช้วิธี FetchMessage

คุณสามารถปรับแต่งโค้ดเพิ่มเติมให้เหมาะกับความต้องการเฉพาะของคุณและใช้เนื้อหาข้อความที่ดึงมาได้ในลักษณะที่ต้องการกับฟีเจอร์อื่นๆ ของไลบรารี .NET

Using IMAP to Retrieve Messages

IMAP เป็นโปรโตคอลยอดนิยมอีกตัวที่ให้วิธีการที่ซิงโครไนซ์และหลากหลายมากขึ้นในการเข้าถึงอีเมล แตกต่างจาก POP3, IMAP จะเก็บอีเมลไว้ที่เซิร์ฟเวอร์ในขณะที่อนุญาตให้คุณจัดการและจัดระเบียบจากหลายอุปกรณ์ การเปลี่ยนแปลงที่ทำในอุปกรณ์หนึ่งจะแสดงผลในอุปกรณ์ทั้งหมด ทำให้ประสบการณ์การใช้งานอีเมลเป็นไปอย่างราบรื่นและสอดคล้องกัน

Aspose.Email for .NET เสนอคลาส ImapClient และคุณสมบัติของมันเพื่อเชื่อมต่อกับเซิร์ฟเวอร์ IMAP และจัดการอีเมลในโฟลเดอร์ ตัวอย่างโค้ดด้านล่างพร้อมขั้นตอนจะแสดงให้คุณเห็นวิธีการดึงข้อมูลข้อความจากเซิร์ฟเวอร์:

  1. สร้างอินสแตนซ์ของ IMAPClient
  2. จัดเตรียมความปลอดภัยในการสื่อสารทางอีเมลของคุณโดยการตั้งค่าคุณสมบัติ SecurityOptions
  3. แสดงข้อความในกล่องจดหมายโดยดึงข้อมูลทีละข้อความ

Retrieving Messages from MS Exchange Server with EWSClient

สำหรับแอปพลิเคชันที่มีปฏิสัมพันธ์กับเซิร์ฟเวอร์ Microsoft Exchange, Aspose.Email for .NET เสนอการสนับสนุนสำหรับ EWS โปรโตคอลนี้ช่วยอำนวยความสะดวกในกระบวนการที่ซับซ้อน รวมถึงการเรียกคืนอีเมล การจัดการปฏิทิน และการซิงโครไนซ์รายชื่อผู้ติดต่อ EWS เป็นที่นิยมโดยเฉพาะสำหรับแอปพลิเคชันที่ต้องการการรวมเข้ากับสภาพแวดล้อม Microsoft Exchange

ในการเชื่อมต่อกับเซิร์ฟเวอร์ Exchange และดึงข้อความอีเมล เราจะใช้คลาส IEWSClient ของ API .NET ตัวอย่างโค้ดที่ให้ไว้ด้านล่างจะแสดงวิธีการสร้างการเชื่อมต่อกับกล่องจดหมาย แสดงรายการข้อความในโฟลเดอร์กล่องจดหมายขาเข้า และจากนั้นดึงข้อมูลอีเมลแต่ละข้อความ กระบวนการนี้ช่วยให้นักพัฒนาสามารถเข้าถึงและจัดการข้อมูลอีเมลโปรแกรมmatically ภายในแอปพลิเคชัน .NET ของพวกเขาได้อย่างมีประสิทธิภาพ

  1. เริ่มต้น EWS client โดยการเรียกใช้ GetEWSClient ของไลบรารี C#
  2. ทำการวนซ้ำข้อความในกล่องจดหมายในลูป foreach โดยใช้วิธี ListMessages
  3. ดึงเนื้อหาของข้อความอีเมลโดยใช้วิธี FetchMessage

ขึ้นอยู่กับความต้องการของแอปพลิเคชันของคุณ คุณสามารถดำเนินการประมวลผลเพิ่มเติมกับตัวแปร eml ที่ดึงมาได้ ซึ่งอาจรวมถึงการวิเคราะห์หัวข้ออีเมล การดึงไฟล์แนบ การวิเคราะห์เนื้อหาของอีเมล หรือการดำเนินการอื่นๆ ที่เกี่ยวข้องโดยใช้ API ที่มีฟีเจอร์ครบถ้วนของเรา

Microsoft Graph to Extract Messages from a Server

Aspose.Email for .NET ช่วยให้นักพัฒนาสามารถใช้พลังของ Microsoft Graph API สำหรับการเรียกคืนอีเมล โดยการรวม Graph API แอปพลิเคชันของคุณจะเข้าถึงจุดสิ้นสุดที่เป็นเอกภาพสำหรับการเรียกคืนอีเมล ปฏิทิน และรายชื่อผู้ติดต่อ การรวมนี้มีคุณค่าโดยเฉพาะเมื่อคุณต้องการสร้างแอปพลิเคชันที่ครอบคลุมและหลายฟังก์ชัน

ตัวอย่างโค้ดและขั้นตอนที่ให้ไว้ด้านล่างจะแสดงให้คุณเห็นวิธีการใช้ Microsoft Graph API เพื่อทำงานกับโฟลเดอร์และข้อความอีเมล มันสร้าง Graph client ดึงข้อมูลโฟลเดอร์ “กล่องจดหมายขาเข้า” และวนซ้ำข้อความในโฟลเดอร์นั้นเพื่อดึงข้อมูลแต่ละข้อความ

  1. สร้างอินสแตนซ์ของ Graph client โดยการเรียกใช้ GetClient จากคลาส GraphClient โดยส่ง tokenProvider และ “tenant ID” เป็นพารามิเตอร์
  2. ใช้ ListFolders จาก client เพื่อดึงข้อมูลคอลเลกชันของโฟลเดอร์ทั้งหมด
  3. ดึงข้อมูลโฟลเดอร์ “Inbox” โดยใช้วิธี FirstOrDefault LINQ บนคอลเลกชันโฟลเดอร์ การแสดงออกแบบ lambda จะตรวจสอบว่าคุณสมบัติ DisplayName ของโฟลเดอร์ตรงกับ “Inbox”
  4. วนซ้ำข้อความในโฟลเดอร์ที่ดึงมาได้ โดยเรียกใช้ ListMessages บน client
  5. สำหรับข้อความแต่ละข้อความ ดึงข้อมูลรายละเอียดของข้อความโดยเรียกใช้ FetchMessage บน client โดยส่ง msgInfo.ItemId เป็นพารามิเตอร์

Extract Messages from Offline Mailbox Storage

ไลบรารี C# ที่ครอบคลุมของเราช่วยให้คุณสร้างแอปพลิเคชันที่มีความสามารถในการจัดเก็บกล่องจดหมายออฟไลน์ โดยการใช้ฟีเจอร์นี้ คุณสามารถดาวน์โหลดและจัดเก็บอีเมลไว้ในเครื่อง เพื่อให้เข้าถึงได้แม้ไม่มีการเชื่อมต่ออินเทอร์เน็ต สิ่งนี้มีประโยชน์โดยเฉพาะสำหรับผู้ใช้ที่ต้องการเข้าถึงอีเมลได้อย่างราบรื่นขณะเดินทาง

ไลบรารีทำงานได้ดีร่วมกับการจัดเก็บอิสระในรูปแบบต่างๆ เช่น PST, MBOX, OLM, TGZ แต่ในบทความนี้เราจะพิจารณาตัวอย่างการดึงข้อมูลอีเมลจาก PST

เพื่อใช้ฟังก์ชันนี้ในระดับออฟไลน์ เราจะใช้คลาส PersonalStorage ของไลบรารี ตัวอย่างโค้ดและขั้นตอนในการดึงข้อมูลข้อความจากไฟล์ pst มีดังนี้:

  1. เริ่มต้นโดยการสร้างวัตถุที่จัดเก็บข้อมูลส่วนบุคคลใหม่ โดยเรียกใช้ FromFile ของคลาส PersonalStorage และส่งพาธของไฟล์ PST เป็นพารามิเตอร์

  2. เริ่มต้นตัวแปรชื่อ “folder” โดยเรียกใช้ GetSubfolder บนคุณสมบัติ RootFolder ของวัตถุที่จัดเก็บข้อมูลส่วนบุคคล ส่งสตริง “Inbox” เป็นพารามิเตอร์เพื่อระบุชื่อโฟลเดอร์ที่ต้องการดึงข้อมูล

  3. ใช้ลูป foreach เพื่อวนซ้ำแต่ละวัตถุ “msgInfo” ในคอลเลกชันที่ส่งคืนโดยวิธี EnumerateMessages ของวัตถุ “folder”

  4. ภายในลูป สร้างตัวแปรใหม่ชื่อ “msg” โดยเรียกใช้ ExtractMessage บนวัตถุที่จัดเก็บข้อมูลส่วนบุคคล ส่งคุณสมบัติ EntryIdString ของวัตถุ “msgInfo” ปัจจุบันเป็นพารามิเตอร์เพื่อระบุข้อความที่จะดึงข้อมูล

โค้ดจะดำเนินการตามที่ระบุในขั้นตอนที่ 3 และ 4 สำหรับแต่ละข้อความในโฟลเดอร์

Conclusion

ในบทความนี้ เราได้เรียนรู้วิธีการใช้พลังของ Aspose.Email for .NET สำหรับการเรียกคืนอีเมล ด้วยการสนับสนุนสำหรับ POP3, IMAP, EWS, Graph API และการจัดเก็บกล่องจดหมายออฟไลน์ ไลบรารีนี้ช่วยให้คุณปรับแต่งฟังก์ชันการทำงานของแอปพลิเคชันของคุณให้ตรงตามความต้องการเฉพาะ ไม่ว่าคุณจะกำลังพัฒนาแอปพลิเคชันลูกค้า เครื่องมือรวม หรือโซลูชันที่กำหนดเอง API .NET ของเรามีเครื่องมือที่จะช่วยให้คุณสร้างประสบการณ์การจัดการข้อความที่ราบรื่นและมีประสิทธิภาพ คุณสามารถสำรวจฟีเจอร์อื่นๆ ของ Aspose.Email ได้ที่ เอกสาร นอกจากนี้คุณยังสามารถโพสต์คำถามของคุณไปยัง ฟอรัมของเรา.

See Also