Outlook mail nesnesi içerisine özel alanlar ekleme ve yeni görünüm oluşturma

Daha önceki yazılarımda outlook’ta nasıl yeni bir dizin oluşturulacağını ve yine bu oluşturduğunuz dizine nasıl yeni bir mail nesnesi ekleyeceğinizi anlatmıştım. Oluşturduğunuz bu maildeki mesaj, konu, gönderen v.b. alanların dışında aşağıda örneğini bulacağınız kod ile kendi özel alanlarınızı da ekleyebilirsiniz :

Outlook.MailItem mailNesnesi = (Outlook.MailItem)olusturdugumDizin.Items.Add(Outlook.OlItemType.olMailItem);
mailNesnesi.Subject = "Mailin Konusu";
mailNesnesi.To = "gonderilecek adres.com";

 mailNesnesi.Body = "Mailimin içeriği";
Outlook.UserProperty musteriKodu = mailNesnesi.UserProperties.Add("MüsteriKodu", Outlook.OlUserPropertyType.olText, true, System.Reflection.Missing.Value);

musteriKodu.Value = "<herhangi bir müşteri kodu>"
mailNesnesi.Save();

Burada vermiş olduğum "müşteri kodu" alanı mail nesneniz içerisindeki normal alanlar dışında sizin yeni bilgileyeceğiniz alanlara bir örnek. Bu bilgiyi, örneğin, müşterinizi takip edebilmek için kullanabilirsiniz. Bu bilginin ardında şöyle bir soru aklınıza gelebilir : "Peki ben bu bilgiyi outlook içerisinde görsel olarak nasıl kullanıcıya yansıtabiliriz?". Bunun için yapmanız gereken oluşturduğunuz dizine yeni bir görünüm (view) eklemek. Aşağıdaki kod parçacığında yeni bir görünüm nasıl ekleyeceğinizi göreceksiniz :

Outlook.View ozellestirilmisGorunum= dizinim.Views["Ozellesirilmis Gorunumum"];

if (ozellestirilmisGorunum== null) {
  ozellestirilmisGorunum= dizinim.Views.Add(
     Resources.WorkItemsViewName,
     Outlook.OlViewType.olTableView,
     Outlook.OlViewSaveOption.olViewSaveOptionThisFolderEveryone);
}
  ozellestirilmisGorunum.XML = "Görünümün bulunduğun xml içeriği";

  ozellestirilmisGorunum.Save();
  ozellestirilmisGorunum.Apply();

Bu kodda önemli olan nokta görünümünüzü tanımlayacağınız xml içeriğidir. Bu xml dosyasının içeriğine bir örneği aşağıda bulabilirsiniz :

<?xml version="1.0"?>
<view type="table">
  <viewname>Messages</viewname>
  <viewstyle>table-layout:fixed;width:100%;font-family:Tahoma;font-style:normal;font-weight:normal;font-size:8pt;color:Black;font-charset:0</viewstyle>
  <viewtime>0</viewtime>
  <linecolor>8421504</linecolor>
  <linestyle>3</linestyle>
  <usequickflags>1</usequickflags>
  <collapsestate></collapsestate>
  <rowstyle>background-color:#FFFFFF</rowstyle>
  <headerstyle>background-color:#D3D3D3</headerstyle>
  <previewstyle>color:Blue</previewstyle>
  <arrangement>
    <autogroup>1</autogroup>
    <collapseclient>01000000</collapseclient>
  </arrangement>
  <column>
    <heading>Müşteri Kodu</heading>
    <prop>http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/MüsteriKodu</prop>
    <type>string</type>
    <width>137</width>
    <style>padding-left:3px;text-align:left</style>
  </column>
  .
  .
  .
  <orderby>
    <order>
      <heading>Müşteri Kodu</heading>
      <prop>http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/MüsteriKodu</prop>
      <type>string</type>
      <sort>desc</sort>
    </order>
  </orderby>
  <groupbydefault>1</groupbydefault>
  <previewpane>
    <visible>1</visible>
    <markasread>0</markasread>
  </previewpane>
</view>

Burada Müşteri kodu alanını column xml tag’lerinin arasında tanımlıyoruz. heading tag’i içerisine yazacağınız string türünden ifade bu alan için gösterilecek olan başlıkta kullanılacaktır. type tag’i bu alanın türünü belirtir; width alan genişliğini, style ise alanın gösterilme biçimi belirtir. Bu alana gelecek olan bilgiyi belirtmek için ise prop tag’i kullanılmaktadır. Bu alan içerisinde "http://schemas.microsoft.com/mapi/" ifadesinden hemen sonra gelen "string" alanın türünü, takip eden "{00020329-0000-0000-C000-000000000046}" ifadesi ise bu alanın UserProperties içerisinde olduğunu, son olarakta MusteriKodu ise UserProperties içerisinde hangi anahtarın altındaki veriyi kullacağımızı belirtir.

orderby tag’leri içerisindeki ifade ise hangi alana göre sıralacağını, groupbydefault ifadesi hangi alana göre gruplayacağını (ilgili alanın indisi); previewpane tag’i içerisindeki visible tag’i ise önizleme penceresinin görünür olup olmadığını belirtir. Biz visible alanına 1 değerini vererek önizlemek penceresinin açık hale gitrmiş olduk.

Fatih Boy

Ankara'da yaşayan Fatih, bir kamu kurumunda danışman olarak çalışmaktadır. ALM süreçleri, kurumsal veri yolu sistemleri, kurumsal altyapı ve yazılım geliştirme konularında destek vermektedir. Boş zamanlarında açık kaynak kodlu projeler geliştirmeyi ve bilgisini yazdığı makalelerle paylaşmayı seven Fatih, aynı zamanda Visual C# ve Visual Studio teknolojileri konusundan Microsoft tarafından altı yıl üst üste MVP (En Değerli Profesyonel) ödülüne layık görülmüştür. İş hayatı boyunca masaüstü uygulamaları, web teknolojileri, akıllı istemciler gibi konularda Asp.Net, Php, C#, Java programlama dilleri ve MySql, MsSql ve Oracle gibi veritabanı yönetim yazılımları ile çalışmıştır. İngilizce ve Türkçe olarak yayınlanan makalelerini gerek İngilizce bloğunda, gerekse de Türkçe bloğunda bulabileceğiniz gibi web sitesinden de açık kaynak kodlu geliştirdiği yazılımlarına ulaşabilirsiniz. vCard - Twitter - Facebook - Google+

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir