مدیریت آیتم‌های گفتگو در سرور Exchange

می‌توان از Aspose.Email برای .NET برای مدیریت آیتم‌های گفتگو در سرور Exchange با EWSClient کلاس. این کلاس از Exchange Web Services استفاده می‌کند که فقط در Exchange Server 2007 و نسخه‌های بعدی موجود است. این مقاله نشان می‌دهد چگونه پیدا کردن, کپی, جابجایی و حذف موارد مکالمه در Exchange Server 2010. سرویس‌پک 1 Microsoft Exchange Server 2010 برای تمام ویژگی‌های گنجانده‌شده در این بخش مورد نیاز است.

یافتن گفتگوها

برای دریافت اطلاعات مکالمه از یک پوشهٔ خاص در Exchange Server:

  1. اتصال به سرور Exchange با استفاده از IEWSClient واسط.
  2. متد را فراخوانی کنید IEWSClient.FindConversations() متد برای یافتن تمام آیتم‌های گفتگو از یک پوشه.
  3. خواص مورد مکالمه مانند شناسه، موضوع مکالمه و وضعیت پرچم را نمایش دهید.

قطعه کد زیر نشان می‌دهد چگونه مکالمات را پیدا کنید.

IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange 2010"); 
            
// Find Conversation Items in the Inbox folder
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
// Show all conversations
foreach (ExchangeConversation conversation in conversations)
{
    // Display conversation properties like Id and Topic
    Console.WriteLine("Topic: " + conversation.ConversationTopic);
    Console.WriteLine("Flag Status: " + conversation.FlagStatus.ToString());
    Console.WriteLine();
}

کپی گفتگوها

برای کپی کردن مکالمات از یک پوشه به پوشهٔ دیگر:

  1. اتصال به سرور Exchange با استفاده از IEWSClient واسط.
  2. متد را فراخوانی کنید IEWSClient.CopyConversationItems() متد برای کپی کردن آیتم گفتگو از پوشه مبدأ به پوشه مقصد.

قطعه کد زیر نشان می‌دهد چگونه مکالمات را کپی کنید.

IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange 2010");
            
// Find those Conversation Items in the Inbox folder which we want to copy
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
foreach (ExchangeConversation conversation in conversations)
{
    Console.WriteLine("Topic: " + conversation.ConversationTopic);
    // Copy the conversation item based on some condition
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.CopyConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Copied the conversation item to another folder");
    }
}

جابه‌جا کردن گفتگوها

برای جابجا کردن مکالمات از یک پوشه به پوشهٔ دیگر:

  1. اتصال به سرور Exchange با استفاده از IEWSClient واسط.
  2. متد را فراخوانی کنید IEWSClient.MoveConversationItems() متد برای جابه‌جایی یک گفتگو از پوشه مبدأ به پوشه مقصد.

قطعه کد زیر نشان می‌دهد چگونه مکالمات را جابجا کنید.

IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange 2010");
            
// Find those Conversation Items in the Inbox folder which we want to move
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

foreach (ExchangeConversation conversation in conversations)
{
    Console.WriteLine("Topic: " + conversation.ConversationTopic);
    // Move the conversation item based on some condition
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.MoveConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Moved the conversation item to another folder");
    }
}

حذف گفتگوها

برای حذف مکالمات از یک پوشه:

  1. اتصال به سرور Exchange با استفاده از IEWSClient واسط.
  2. متد را فراخوانی کنید IEWSClient.DeleteConversationItems() متد برای حذف آیتم گفتگو از پوشه مبدأ.

قطعه کد زیر نشان می‌دهد چگونه مکالمات را حذف کنید.

IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange 2010");
            
// Find those Conversation Items in the Inbox folder which we want to delete
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
foreach (ExchangeConversation conversation in conversations)
{
    Console.WriteLine("Topic: " + conversation.ConversationTopic);
    // Delete the conversation item based on some condition
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.DeleteConversationItems(conversation.ConversationId);
        Console.WriteLine("Deleted the conversation item");
    }
}