ทำงานกับการสนทนาใน MS Exchange Server ใน C#

การสนทนาบน Microsoft Exchange Server จะเรียกว่ากลุ่มข้อความอีเมลในเธรด พูดง่ายๆ ก็คือ อีเมลและการตอบกลับทั้งหมดถือเป็นการสนทนา ในบทความนี้ เราจะแสดงวิธีการทำงานกับการสนทนาใน MS Exchange Server โดยทางโปรแกรม โดยเฉพาะอย่างยิ่ง คุณจะได้เรียนรู้วิธีการค้นหา คัดลอก ย้าย และลบการสนทนาบน MS Exchange Server ใน C# .NET

C# .NET API เพื่อทำงานกับการสนทนาบน MS Exchange Server

ในการจัดการการสนทนาบน Microsoft Exchange Server เราจะใช้ Aspose.Email for .NET เป็น API ที่มีประสิทธิภาพซึ่งมีคุณสมบัติมากมายเพื่อใช้แอปพลิเคชันอีเมลไคลเอ็นต์ อีกทั้งยังช่วยให้คุณเข้าถึงบริการต่างๆ ของ MS Exchange Server ได้อย่างไม่มีสะดุด คุณสามารถ ดาวน์โหลด DLL ของ API หรือติดตั้งจาก NuGet โดยใช้คำสั่งต่อไปนี้

PM> Install-Package Aspose.Email

ค้นหาการสนทนาบน MS Exchange Server ใน C#

ต่อไปนี้เป็นขั้นตอนในการค้นหาการสนทนาจากโฟลเดอร์ใน MS Exchange Server ใน C#

  • ขั้นแรก สร้างและเริ่มต้นวัตถุ NetworkCredential ด้วยชื่อผู้ใช้ รหัสผ่าน และโดเมน
  • จากนั้น เริ่มต้น IEWSClient ด้วยกล่องจดหมาย URI และวัตถุ NetworkCredential
  • เรียกใช้เมธอด IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) และรับการสนทนาในอาร์เรย์ ExchangeConversation
  • สุดท้าย วนซ้ำแต่ละออบเจกต์ ExchangeConversation ในอาร์เรย์และรับรายละเอียด

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการค้นหาการสนทนาจากโฟลเดอร์ใน MS Exchange Server ใน C#

string mailboxUri = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);

// เชื่อมต่อกับ MS Exchange Server
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// รับการสนทนาจากกล่องจดหมาย
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

// แสดงการสนทนาทั้งหมด
foreach (ExchangeConversation conversation in conversations)
{
    // แสดงคุณสมบัติการสนทนา เช่น รหัสและหัวข้อ
    Console.WriteLine("Topic: " + conversation.ConversationTopic);
    Console.WriteLine("Flag Status: " + conversation.FlagStatus.ToString());
    Console.WriteLine();
}

คัดลอกการสนทนาบน MS Exchange Server ใน C#

คุณยังสามารถคัดลอกการสนทนาจากโฟลเดอร์หนึ่งไปยังอีกโฟลเดอร์หนึ่งโดยไม่ต้องเขียนโค้ดที่ซับซ้อน สำหรับการสาธิต มาดูวิธีการคัดลอกการสนทนาจากกล่องขาเข้าไปยังโฟลเดอร์รายการที่ถูกลบของ Exchange Server ใน C# .NET

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการคัดลอกการสนทนาใน MS Exchange Server โดยใช้ C# .NET

string mailboxUri = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);

// เชื่อมต่อกับ MS Exchange Server
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// รับการสนทนา
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

foreach (ExchangeConversation conversation in conversations)
{
    Console.WriteLine("Topic: " + conversation.ConversationTopic);

    // คัดลอกรายการสนทนาตามเงื่อนไขบางประการ
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.CopyConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Copied the conversation item to another folder");
    }
}

ย้ายการสนทนาบน MS Exchange Server ใน C#

ในส่วนก่อนหน้านี้ เราเพิ่งคัดลอกการสนทนาจากโฟลเดอร์หนึ่งไปยังอีกโฟลเดอร์หนึ่ง อย่างไรก็ตาม ในบางกรณี คุณอาจต้องย้ายการสนทนาไปยังโฟลเดอร์ใดโฟลเดอร์หนึ่ง ต่อไปนี้เป็นขั้นตอนในการย้ายการสนทนาใน MS Exchange Server ใน C# .NET

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการย้ายการสนทนาใน MS Exchange Server โดยใช้ C# .NET

string mailboxUri = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);

// เชื่อมต่อกับ MS Exchange Server
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// รับการสนทนา
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

foreach (ExchangeConversation conversation in conversations)
{
    Console.WriteLine("Topic: " + conversation.ConversationTopic);

    // ย้ายรายการสนทนาตามเงื่อนไขบางประการ
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.MoveConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Moved the conversation item to another folder");
    }
}

ลบการสนทนาบน MS Exchange Server ใน C#

สุดท้าย แต่ไม่ท้ายสุด มาดูวิธีการลบการสนทนาจาก MS Exchange Server ใน C#

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการลบการสนทนาจาก MS Exchange Server ใน C# .NET

string mailboxUri = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);

// เชื่อมต่อกับ MS Exchange Server
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// รับการสนทนา
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

foreach (ExchangeConversation conversation in conversations)
{
    Console.WriteLine("Topic: " + conversation.ConversationTopic);

    // ลบรายการสนทนาตามเงื่อนไขบางประการ
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.DeleteConversationItems(conversation.ConversationId);
        Console.WriteLine("Deleted the conversation item");
    }
}

รับใบอนุญาต API ฟรี

คุณสามารถรับ ใบอนุญาตชั่วคราวฟรี เพื่อใช้ Aspose.Email for .NET โดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีจัดการการสนทนาใน Microsoft Exchange Server โดยใช้ C# คุณได้เห็นวิธีการค้นหา คัดลอก ย้าย และลบการสนทนาบน MS Exchange Server โดยทางโปรแกรมใน C# นอกจากนี้ คุณสามารถสำรวจ เอกสารประกอบ เพื่ออ่านเพิ่มเติมเกี่ยวกับ Aspose.Email for .NET นอกจากนี้ คุณสามารถถามคำถามผ่าน ฟอรัม ของเรา

ดูสิ่งนี้ด้วย