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,