Microsoft Exchange Server, e-posta, takvimler, kişiler vb. gibi çeşitli işbirliği hizmetleri sağlayan popüler bir platformdur. Önceki gönderide, size Microsoft Exchange Server’dan gelen e-postaları nasıl okuyacağınızı gösterdik. Ancak, Exchange Server’daki kişilerle programlı olarak da çalışmanız gerekebilir. Bu makalede, C# .NET’te Microsoft Exchange Server’da kişileri nasıl ekleyeceğinizi, sileceğinizi veya güncelleyeceğinizi öğreneceksiniz.
- MS Exchange Server’daki Kişilere Erişmek için .NET API
- Kişileri MS Exchange Sunucusuna Ekleme
- Kişileri MS Exchange Sunucusundan Silme
- MS Exchange Sunucusunda Bir Kişiyi Güncelleyin
MS Exchange Sunucusunda Kişilere Erişmek için C# .NET API
Microsoft Exchange Server’da kişilerle çalışmak için Aspose.Email for .NET kullanacağız. .NET uygulamalarından farklı e-posta istemcileriyle çalışmak için iyi bilinen bir API’dir. API’nin DLL’sini indirebilir veya aşağıdaki komutu kullanarak NuGet’ten yükleyebilirsiniz.
PM> Install-Package Aspose.Email
C# ile MS Exchange Sunucusuna Kişiler Ekleme
C# dilinde Microsoft Exchange Server’a kişi ekleme 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.
- Contact sınıfından bir nesne oluşturun ve onun ad, iş, cinsiyet, telefon, ilişkili kişiler vb. gibi özelliklerini ayarlayın.
- Son olarak, kişi eklemek için EWSClient.CreateContact(Contact) öğesini arayın.
Aşağıdaki kod örneği, C# dilinde Microsoft Exchange Server’a nasıl kişi ekleneceğ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);
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
// Yeni kişi yarat
Contact contact = new Contact();
// Genel bilgileri ayarla
contact.Gender = Gender.Male;
contact.DisplayName = "Frank Lin";
contact.CompanyName = "ABC Co.";
contact.JobTitle = "Executive Manager";
// Telefon numaraları ekleyin
contact.PhoneNumbers.Add(new PhoneNumber { Number = "123456789", Category = PhoneNumberCategory.Home });
// Kişinin ilişkili kişileri
contact.AssociatedPersons.Add(new AssociatedPerson { Name = "Catherine", Category = AssociatedPersonCategory.Spouse });
contact.AssociatedPersons.Add(new AssociatedPerson { Name = "Bob", Category = AssociatedPersonCategory.Child });
contact.AssociatedPersons.Add(new AssociatedPerson { Name = "Merry", Category = AssociatedPersonCategory.Sister });
// URL'ler
contact.Urls.Add(new Url { Href = "www.blog.com", Category = UrlCategory.Blog });
contact.Urls.Add(new Url { Href = "www.homepage.com", Category = UrlCategory.HomePage });
// Kişinin e-posta adresini ayarla
contact.EmailAddresses.Add(new EmailAddress { Address = "Frank.Lin@Abc.com", DisplayName = "Frank Lin", Category = EmailAddressCategory.Email1 });
try
{
client.CreateContact(contact);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
C# ile MS Exchange Sunucusundan Kişileri Sil
Bir kişiyi MS Exchange Sunucusundan da silebilirsiniz. Kişileri filtrelemek için adı, e-postayı veya diğer uygun özellikleri kullanabilirsiniz. C# dilinde Microsoft Exchange Server’dan bir kişiyi silme adımları aşağıdadır.
- İlk olarak, IEWSClient nesnesini başlatın.
- Ardından, IEWSClient.GetContacts(EWSClient.MailboxInfo.ContactsUri) yöntemini kullanarak MS Exchange Sunucusundan kişileri alın.
- Kişiler arasında dolaşın ve gerekli olanı filtreleyin.
- Son olarak, IEWSClient.DeleteItem(Contact.Id.EWSId, DeletionOptions.DeletePermanently) yöntemini kullanarak filtrelenmiş bir kişiyi silin.
Aşağıdaki kod örneği, C# dilinde Microsoft Exchange Server’dan kişilerin nasıl silineceğini gösterir.
// EWSClient'ı başlat
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
string strContactToDelete = "John Teddy";
// Kişileri al
Contact[] contacts = client.GetContacts(client.MailboxInfo.ContactsUri);
// Kişileri filtrele
foreach (Contact contact in contacts)
{
// Kişiyi silmek
if (contact.DisplayName.Equals(strContactToDelete))
client.DeleteItem(contact.Id.EWSId, DeletionOptions.DeletePermanently);
}
client.Dispose();
C# ile Exchange Sunucusunda Bir Kişiyi Güncelleyin
Aspose.Email for .NET’i kullanarak MS Exchange Server’daki bir kişiyi de güncelleyebilirsiniz. Bu işlemi gerçekleştirmek için 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, IEWSClient öğesini posta kutusu URI’si ve NetworkCredential nesnesiyle başlatın.
- IEWSClient.GetContacts(EWSClient.MailboxInfo.ContactsUri) yöntemini kullanarak Exchange Server’dan kişileri alın.
- Bundan sonra, kişiler arasında dolaşın ve istenen kişiyi filtreleyin.
- Son olarak, kişinin özelliklerini güncelleyin ve kaydetmek için IEWSClient.UpdateContact(Contact) numaralı telefonu arayın.
Aşağıdaki kod örneği, C# dilinde MS Exchange Sunucusunda bir kişinin nasıl güncelleneceğ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);
// EWSClient'ı başlat
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
// Tüm kişileri listeleyin ve tüm kişiler arasında döngü yapın
Contact[] contacts = client.GetContacts(client.MailboxInfo.ContactsUri);
// İstediğiniz kişiyi seçin
Contact contact = contacts[0];
Console.WriteLine("Name: " + contact.DisplayName);
contact.DisplayName = "David Ch";
// Kişiyi güncelle
client.UpdateContact(contact);
Ü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# ile Microsoft Exchange Server’da kişilerle nasıl çalışılacağını öğrendiniz. C# dilinde programlı olarak MS Exchange Server’dan kişilerin nasıl ekleneceğini, kaldırılacağını ve güncelleneceğini gösterdik. 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.