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
- C# ile MS Exchange Sunucusunda Konuşmaları Bulun
- C# ile MS Exchange Sunucusunda Bir Konuşmayı Kopyalayın
- C# ile MS Exchange Sunucusunda Bir Konuşmayı Taşıma
- C# ile MS Exchange Sunucusunda Bir Konuşmayı Silme
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.
- Öncelikle kullanıcı adı, parola ve etki alanı ile NetworkCredential nesnesini oluşturun ve başlatın.
- Ardından, posta kutusu URI’si ve NetworkCredential nesnesi ile IEWSClient‘yı başlatın.
- IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) yöntemini çağırın ve konuşmaları bir ExchangeConversation dizisinde alın.
- Son olarak, dizideki her ExchangeConversation nesnesi arasında geçiş yapın ve ayrıntılarını alın.
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.
- Öncelikle kullanıcı adı, parola ve etki alanı ile NetworkCredential nesnesini oluşturun ve başlatın.
- Ardından, IEWSClient öğesini posta kutusu URI’si ve NetworkCredential nesnesiyle başlatın.
- IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) yöntemini çağırın ve konuşmaları bir ExchangeConversation dizisinde alın.
- Dizideki her bir ExchangeConversation içinde dolaşın ve gerekli olanları filtreleyin.
- Son olarak, IEWSClient.CopyConversationItems(ExchangeConversation.ConversationId, client.MailboxInfo.DeletedItemsUri) yöntemini kullanarak konuşmayı kopyalayın.
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.
- Öncelikle kullanıcı adı, parola ve etki alanı ile NetworkCredential nesnesini oluşturun ve başlatın.
- Ardından, posta kutusu URI’si ve NetworkCredential nesnesi ile IEWSClient‘yi başlatın.
- IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) yöntemini çağırın ve konuşmaları bir ExchangeConversation dizisinde alın.
- Dizideki her bir ExchangeConversation içinde dolaşın ve gerekli olanları filtreleyin.
- Son olarak, IEWSClient.MoveConversationItems(ExchangeConversation.ConversationId, client.MailboxInfo.DeletedItemsUri) yöntemini kullanarak görüşmeyi taşıyın.
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.
- Öncelikle kullanıcı adı, parola ve etki alanı ile NetworkCredential nesnesini oluşturun ve başlatın.
- Ardından, posta kutusu URI’si ve NetworkCredential nesnesi ile IEWSClient‘ü başlatın.
- Bundan sonra, IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) yöntemini çağırın ve konuşmaları bir ExchangeConversation dizisinde alın.
- Dizideki her bir ExchangeConversation içinde dolaşın ve gerekli olanları filtreleyin.
- Son olarak, IEWSClient.DeleteConversationItems(ExchangeConversation.ConversationId) yöntemini kullanarak bir konuşmayı silin.
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.