C# Exchange Server ile Mail Okuma Ve Taşıma İşlemi
Bu konumuzda exchange serverda nasıl klasör okuruz ve nasıl klasöre taşırız ondan bahsedeceğim.
Aslında neden böyle bir işleme ihtiyacım var gibi bir düşünceniz olabilir. Çok doğal bende ilk önce böyle bir şey düşünmüştüm ancak kullanım alanı olarak mail ile işlem yaptırdığınızda ciddi anlamda işiniz görecek bir yapı olduğundan bahsetmiş olayım. Peki neden maili farklı klasöre taşıyorum ? maili farklı klasöre taşıma sebebim her okuduğumda aynı maili değilde yeni gelen mailleri okumak istediğim için bu yolu izlemiş oluyorum.
Başlamadan önce nuget packageden aşağıdaki paketi kurunuz
1 | using Microsoft.Exchange.WebServices.Data; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1); service.Credentials = new NetworkCredential("Domaindeki kullanıcı adı@siz", "Şifre", "DomainAdı"); service.AutodiscoverUrl("mailadresiniz@teknohisar.com");//Mail Adresiniz @şeklinde service.TraceEnabled = true;//true yaptığımızda ekranda süreç ile ilgili hata alırsanız onun hakkında bilgi alırsınız. FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, new ItemView(10)); //inboxdaki 10 adet maili getirir Folder rootfolder = Folder.Bind(service, WellKnownFolderName.MsgFolderRoot); //Mail Klasörlerini getirir rootfolder.Load(); foreach (Item item in findResults.Items)//Mailler döner { foreach (Folder folder in rootfolder.FindFolders(new FolderView(100)))//Mail klasörü { if (folder.DisplayName == "TaşınacakKlasörAdı")//Klasör adını buluyoruz { var fid = folder.Id;//folder id buluyoruz item.Move(fid);//maili o folder'a taşıyoruz } } } |
Uzunlafın kısası kodun içerisinde yapılan işlemleri anlattım işlem çok basit ve çok kolay buraya kadar okuduysanız teşekkür ederim
Örnek Projeyi Github’dan Görmek İçin Tıklayabilirsiniz.