Microsoft Exchange Server, e-posta, kişi yönetimi, takvim ve diğer hizmetleri sağlayan, yaygın olarak kullanılan bir işbirliği platformudur. Önceki gönderide, bir .NET uygulamasında programlı olarak MS Exchange Sunucusundan e-postalara nasıl erişeceğinizi ve bu e-postaları nasıl okuyacağınızı gösterdik. Ancak, e-postaları Exchange Server’da bir klasörden diğerine kopyalamanız da gerekebilir. Bunu başarmak için bu makale, e-postaların C# .NET’te MS Exchange Sunucusunda belirli bir klasöre nasıl taşınacağını gösterir.
- E-postaları Microsoft Exchange Sunucusunda Taşımak için .NET API
- Mevcut E-postayı MS Exchange Sunucusundaki Bir Klasöre Taşıyın
- Yeni E-postayı MS Exchange Sunucusunda Bir Klasöre Taşıyın
E-postaları Microsoft Exchange Sunucusunda Taşımak için C# .NET API
E-postaları MS Exchange Sunucusunda taşımak için Aspose.Email for .NET kullanacağız. API, MS Exchange Server’a bağlanmak ve onunla çalışmak için basit yollar sağlar. NuGet veya DLL’sini indir aracılığıyla yükleyebilirsiniz.
PM> Install-Package Aspose.Email
E-postayı C# ile MS Exchange Sunucusundaki Bir Klasöre Taşıyın
Aşağıdakiler, e-postaları C# dilinde MS Exchange Server’da belirli bir klasöre taşıma adımlarıdır.
- İlk önce kullanıcı adı, parola, etki alanı ve URI kullanarak IEWSClient nesnesini başlatın.
- Ardından, IEWSClient.ListMessages(IEWSClient.MailboxInfo.InboxUri) yöntemini kullanarak bir ExchangeMessageInfoCollection nesnesindeki e-posta mesajlarının listesini alın.
- Bundan sonra, her ExchangeMessageInfo mesajında dolaşın ve gerekli olanları filtreleyin.
- Ardından, ExchangeMessageInfo.UniqueUri özelliğini kullanarak taşınacak mesajın URI’sini alın.
- Son olarak, IEWSClient.CopyItem(string URI, IEWSClient.MailboxInfo.DeletedItemsUri) yöntemini kullanarak e-posta mesajını taşıyın.
Aşağıdaki kod örneği, bir e-postanın C# .NET’te MS Exchange Server’daki bir klasöre nasıl taşınacağını gösterir.
try
{
// Kimlik bilgilerini vererek EWSClient sınıfının örneğini oluşturun
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// Gelen Kutusu'ndaki mesaj bilgilerini listelemek için ListMessages yöntemini çağırın
ExchangeMessageInfoCollection msgCollection = client.ListMessages(client.MailboxInfo.InboxUri);
// İleti URI'sini almak için koleksiyonda döngü yapın
foreach (ExchangeMessageInfo msgInfo in msgCollection)
{
if (msgInfo.From.Address.Contains("jhon.vick"))
{
String strMessageURI = msgInfo.UniqueUri;
// Belirli bir klasöre kopyala
string newMessageUri = client.CopyItem(strMessageURI, client.MailboxInfo.DeletedItemsUri);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Yeni E-postayı MS Exchange Sunucusunda Bir Klasöre Taşıyın
Yeni oluşturulan bir e-postayı MS Exchange Server’da belirli bir klasöre de taşıyabilirsiniz. Bu işlemi gerçekleştirmek için adımlar aşağıdadır.
- İlk önce kullanıcı adı, parola, etki alanı ve URI kullanarak IEWSClient nesnesini başlatın.
- Ardından, MailMessage sınıfını kullanarak yeni bir mesaj oluşturun.
- Bundan sonra, IEWSClient.AppendMessage(MailMessage) yöntemi tarafından döndürülen e-posta iletisinin URI’sini alın.
- Son olarak, IEWSClient.CopyItem(string URI, IEWSClient.MailboxInfo.OutboxUri) yöntemini kullanarak e-posta mesajını taşıyın.
Aşağıdaki kod örneği, yeni bir e-posta iletisinin MS Exchange Server’daki bir klasöre nasıl taşınacağını gösterir.
try
{
// Kimlik bilgilerini vererek EWSClient sınıfının örneğini oluşturun
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// mesaj oluştur
MailMessage message = new MailMessage("from@domain.com", "to@domain.com", "EMAILNET-34997 - " + Guid.NewGuid().ToString(), "EMAILNET-34997 Exchange: Copy a message and get reference to the new Copy item");
// Mesaj URI'sini al
string messageUri = client.AppendMessage(message);
// Mesajı kopyala
string newMessageUri = client.CopyItem(messageUri, client.MailboxInfo.OutboxUri);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Ü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 e-postaları Microsoft Exchange Server’da belirli bir klasöre nasıl taşıyacağınızı öğrendiniz. Ayrıca, yeni oluşturulan bir e-posta mesajını Exchange Server’da belirli bir klasöre nasıl taşıyacağınızı 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]18.