العمل مع المحادثات في MS Exchange Server في C#

يشار إلى المحادثات على Microsoft Exchange Server على أنها مجموعة رسائل البريد الإلكتروني في سلسلة رسائل. بكلمات بسيطة ، من المعروف أن البريد الإلكتروني وجميع الردود عليه عبارة عن محادثة. في هذه المقالة ، سنوضح لك كيفية التعامل مع المحادثات في MS Exchange Server برمجيًا. على وجه الخصوص ، سوف تتعلم كيفية البحث عن المحادثات ونسخها ونقلها وحذفها على MS Exchange Server في C# .NET.

C# .NET API للعمل مع المحادثات على خادم MS Exchange

لإدارة المحادثات على Microsoft Exchange Server ، سنستخدم Aspose.Email for .NET. إنها واجهة برمجة تطبيقات قوية توفر مجموعة من الميزات لتنفيذ تطبيقات عميل البريد الإلكتروني. كما يتيح لك الوصول إلى خدمات MS Exchange Server المختلفة بسلاسة. يمكنك إما تنزيل DLL الخاصة بواجهة برمجة التطبيقات أو تثبيته من NuGet باستخدام الأمر التالي.

PM> Install-Package Aspose.Email

البحث عن محادثات على MS Exchange Server في C#

فيما يلي خطوات البحث عن محادثات من مجلد في MS Exchange Server في C#.

يوضح نموذج التعليمات البرمجية التالي كيفية البحث عن محادثات من مجلد في 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 لـ .NET بدون قيود تقييم.

استنتاج

في هذه المقالة ، تعلمت كيفية إدارة المحادثات في Microsoft Exchange Server باستخدام C#. لقد رأيت كيفية البحث عن المحادثات ونسخها ونقلها وحذفها على MS Exchange Server برمجيًا في C#. بالإضافة إلى ذلك ، يمكنك استكشاف التوثيق لقراءة المزيد حول Aspose.Email لـ .NET. يمكنك أيضًا طرح أسئلتك عبر المنتدى.

أنظر أيضا