C# dilinde MS Exchange Sunucusunda Konuşmalarla Çalışma

Microsoft Exchange Server üzerindeki konuşmalara, bir dizideki e-posta mesajları grubu denir. Basit bir ifadeyle, bir e-posta ve tüm yanıtları bir konuşma olarak bilinir. Bu yazıda, MS Exchange Server’da konuşmalarla programlı olarak nasıl çalışılacağını göstereceğiz. Özellikle C# .NET’te MS Exchange Server’da konuşmaları bulmayı, kopyalamayı, taşımayı ve silmeyi öğreneceksiniz.

MS Exchange Sunucusunda Konuşmalarla Çalışmak için C# .NET API

Microsoft Exchange Server’daki görüşmeleri yönetmek için Aspose.Email for .NET kullanacağız. E-posta istemci uygulamalarını uygulamak için bir dizi özellik sağlayan güçlü bir API’dir. Ayrıca, MS Exchange Server’ın çeşitli hizmetlerine sorunsuz bir şekilde erişmenizi sağlar. API’nin DLL’sini indirebilir veya aşağıdaki komutu kullanarak NuGet’ten yükleyebilirsiniz.

PM> Install-Package Aspose.Email

C# ile MS Exchange Sunucusunda Konuşmaları Bulun

C# dilinde MS Exchange Server’daki bir klasörden konuşmaları bulma adımları aşağıdadır.

Aşağıdaki kod örneği, C# dilinde MS Exchange Server’daki bir klasörden konuşmaların nasıl bulunacağını gösterir.

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 Sunucusuna Bağlan
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Gelen kutusundan konuşmaları alın
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

// Tüm konuşmaları göster
foreach (ExchangeConversation conversation in conversations)
{
    // Kimlik ve Konu gibi görüşme özelliklerini görüntüleyin
    Console.WriteLine("Topic: " + conversation.ConversationTopic);
    Console.WriteLine("Flag Status: " + conversation.FlagStatus.ToString());
    Console.WriteLine();
}

C# ile MS Exchange Sunucusunda Bir Konuşmayı Kopyalayın

Karmaşık bir kod yazmadan konuşmaları bir klasörden diğerine de kopyalayabilirsiniz. Gösterim için, C# .NET’te Exchange Server’ın gelen kutusundaki silinmiş öğeler klasörüne konuşmaların nasıl kopyalanacağına bir göz atalım.

Aşağıdaki kod örneği, C# .NET kullanılarak MS Exchange Server’da bir konuşmanın nasıl kopyalanacağını gösterir.

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 Sunucusuna Bağlan
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Sohbetleri al
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

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

    // Bazı koşullara göre konuşma öğesini kopyalayın
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.CopyConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Copied the conversation item to another folder");
    }
}

C# ile MS Exchange Sunucusunda Bir Konuşmayı Taşıma

Önceki bölümde, konuşmaları bir klasörden diğerine kopyaladık. Ancak bazı durumlarda, bir görüşmeyi belirli bir klasöre taşımanız gerekebilir. C# .NET’te MS Exchange Server’da konuşmaları taşıma adımları aşağıdadır.

Aşağıdaki kod örneği, C# .NET kullanılarak MS Exchange Server’da bir konuşmanın nasıl taşınacağını gösterir.

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 Sunucusuna Bağlan
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Sohbetleri al
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

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

    // Bazı koşullara göre konuşma öğesini taşıyın
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.MoveConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
        Console.WriteLine("Moved the conversation item to another folder");
    }
}

C# ile MS Exchange Sunucusunda Bir Konuşmayı Silme

Son olarak, C# dilinde MS Exchange Server’dan bir konuşmanın nasıl silineceğine bir göz atalım.

Aşağıdaki kod örneği, C# .NET’te MS Exchange Server’dan bir konuşmanın nasıl silineceğini gösterir.

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 Sunucusuna Bağlan
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");

// Sohbetleri al
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);

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

    // Bazı koşullara göre konuşma öğesini silin
    if (conversation.ConversationTopic.Contains("test email") == true)
    {
        client.DeleteConversationItems(conversation.ConversationId);
        Console.WriteLine("Deleted the conversation item");
    }
}

Ücretsiz API Lisansı Alın

Aspose.Email for .NET’i değerlendirme sınırlamaları olmadan kullanmak için ücretsiz geçici lisans alabilirsiniz.

Çözüm

Bu makalede, C# kullanarak Microsoft Exchange Server’da konuşmaları nasıl yöneteceğinizi öğrendiniz. MS Exchange Server’da konuşmaları programlı olarak C# ile nasıl bulacağınızı, kopyalayacağınızı, taşıyacağınızı ve sileceğinizi gördünüz. Ayrıca Aspose.Email for .NET hakkında daha fazlasını okumak için belgeleri inceleyebilirsiniz. Ayrıca sorularınızı forumumuz aracılığıyla da sorabilirsiniz.

Ayrıca bakınız