کار با مکالمات در MS Exchange Server در سی شارپ

مکالمات در Microsoft Exchange Server به عنوان گروهی از پیام های ایمیل در یک رشته نامیده می شود. به عبارت ساده، یک ایمیل و تمام پاسخ های آن به عنوان یک مکالمه شناخته می شوند. در این مقاله نحوه کار با مکالمات در MS Exchange Server را به صورت برنامه نویسی به شما نشان خواهیم داد. به ویژه، شما یاد خواهید گرفت که چگونه مکالمات را در MS Exchange Server در C#.NET پیدا کنید، کپی کنید، انتقال دهید و حذف کنید.

C# .NET API برای کار با مکالمات در سرور MS Exchange

برای مدیریت مکالمات در Microsoft Exchange Server، از Aspose.Email for .NET استفاده خواهیم کرد. این یک API قدرتمند است که طیف وسیعی از ویژگی ها را برای پیاده سازی برنامه های سرویس گیرنده ایمیل ارائه می دهد. همچنین به شما این امکان را می دهد که به خدمات مختلف MS Exchange Server به صورت یکپارچه دسترسی داشته باشید. می توانید DLL API را دانلود یا با استفاده از دستور زیر از NuGet نصب کنید.

PM> Install-Package Aspose.Email

یافتن مکالمات در سرور MS Exchange در سی شارپ

مراحل زیر برای یافتن مکالمات از یک پوشه در MS Exchange Server در سی شارپ است.

نمونه کد زیر نحوه یافتن مکالمات را از یک پوشه در 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 در سی شارپ

همچنین می توانید مکالمات را از یک پوشه به پوشه دیگر بدون نوشتن کد پیچیده کپی کنید. برای نمایش، بیایید نگاهی به نحوه کپی کردن مکالمات از صندوق ورودی به پوشه موارد حذف شده 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 در سی شارپ

در بخش قبل، فقط مکالمات را از یک پوشه به پوشه دیگر کپی کردیم. با این حال، در موارد خاص، ممکن است لازم باشد مکالمه را به یک پوشه خاص منتقل کنید. مراحل زیر برای انتقال مکالمات در 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 در سی شارپ

نکته آخر، بیایید نگاهی به نحوه حذف یک مکالمه از MS Exchange Server در سی شارپ بیندازیم.

نمونه کد زیر نحوه حذف مکالمه از 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 برای دات نت بدون محدودیت ارزیابی، مجوز موقت رایگان دریافت کنید.

نتیجه

در این مقاله نحوه مدیریت مکالمات در Microsoft Exchange Server با استفاده از سی شارپ را یاد گرفتید. شما نحوه یافتن، کپی کردن، انتقال و حذف مکالمات روی MS Exchange Server را به صورت برنامه نویسی در سی شارپ مشاهده کرده اید. علاوه بر این، می‌توانید [اسناد29 را بررسی کنید تا درباره Aspose.Email برای دات‌نت اطلاعات بیشتری کسب کنید. همچنین، می‌توانید سؤالات خود را از طریق [تالار گفتمان30 ما بپرسید.

همچنین ببینید