C# ile Exchange Mail Queue Sorgulama

Merhaba,

Geçtiğimiz günlerde bir problem ile karşılaştık. Mail Server’ımız içeriye mail gönderiyor ancak dışarıya mail göndermiyordu. Problem olduğunu anladıktan sonra problemi çözdük ancak biz problem olduğunu anlayana kadar epey bir süre geçmişti. Bu tarz bir problem ile karşılaşmamak adına dedim ki bir yazılım yazayım belli aralıklarla mail server’da sırada bekleyen mail sayısını alsın. Biz bunun üzerine eğer bu sayı 20 nin üzerinde ise bana mail atsın, yok şuraya loglasın, yok gitsin şunu yazsın vs gibi kontrolleri yazabilelim. O işin kolay kısmı, biz power shell komutlarını çalıştırmaya odaklanalım. Bu günkü yazımızda bu yazılımı yazacağız.

Bu iÅŸlemi yapabilmek için ms exchange power shell komutlarını kullanacağız. Uzaktan baÄŸlantı kurabilmemiz için  using System.Management.Automation; kutuphanesini kullanmamız gerekecek. Bu kutuphane varsayılan olarak visual studio 2010 içerisinde yok. Bizim bunu dışarıdan dahil etmemiz icap etmekte. Bunu yapabilmek içinde nuget manager kullanacağız. Nasıl mı ? AÅŸağıda…

Visual Studio 2010 u açtık. Bir winform projesi başlattık. Buraya kadar herşey tamam.  Yukarıda Tools diye bir kısayolumuz bulunmaktadır. Buna tıkladıktan sonra Extension Manager sekmesine tıklayalım.

Bu iÅŸlemi yaptıktan sonra karşımıza extension manager ekranı gelecektir. Internete baÄŸlı olan bilgisayarımızda sol taraftan Online Galery sekmesine tıklayalım ve SaÄŸ üstte bulunan Arama alanına Nuget Package Manager yazalım (default olarak en üstte gelecektir eÄŸer gelmezi ise). Karşımıza gelen toolun üzerine tıklayıp önce download sonra ise install sekmesine basalım. Bu iÅŸlem bir kaç dakika sürebilir. Sonuna kadar bekleyelim.  Ä°ÅŸlem hakkında bilgi ekranın sol alt kısmında yazıyor olacaktır. Åžimdiye kadarki kısımda Nuget Package Manager install yapısını gördük. Ä°ÅŸlem bittikten sonra yukarıda Tools sekmesine Nuget Package Manager sekmesi eklenecektir. EÄŸer yok ise bir restart herÅŸeyi çözer…

Tools > Nuget Package Manager > Package Manager Console

Sekmelerine tıklıyoruz. Hemen altta console açılıyor oraya şu komutu yazıyoruz.

Sonra install işlemi başlıyor ve bitiyor. Artık System.Management.Automation sınıfını kullanabilir durumdayız.

Önce yapacağımız işlemi kısaca özetleyelim sonrada kodlamamıza başlayalım.

Bir adet method oluşturacağız. Bu method ile exchange serverımıza bağlanıp sırada bekleyen mesajları ve bunların sayısını alacağız. Haydi başlayalım.

İlk olarak methodumuzu yazmaya başlayalım açıklamaları method içerisinde yorum satırı olarak eklemek daha güzel duracaktır.

Form1 in cs dosyasını tamamen buraya yapıştırdım. Dizayn kısmına hiç eğilmedim siz dilediğiniz gibi dizayn yapabilirsiniz.

İyi Günler Dilerim,