Makale Özeti

Bu bölümde, Outlook obje modelini yöneterek Visual Basic .Net uygulamalarında bu objenin kullanımını göreceğiz.

Makale

^^^^VB de Outlook^^^^

“VB.NET”te OUTLOOK UYGULAMASI

Bu bölümde, Outlook obje modelini yöneterek Visual Basic .Net uygulamalarında bu objenin kullanımını göreceğiz.

Outlook ile bağlantı kurabilmek için önce bir değişken atamamız gerekir.

Dim OLApp As New Outlook.Application

Outlook ta Word ya da Excel de olduğu gibi  Document veya Worksheet gibi tek bir çeşit obje bulunmaz.

Outlook mail mesajları, kontaklar, ve görevler gibi objeler içerir. Bu objeler bir Folder objesinin altındadır. Folder ojesine erişmek için, bir MAPI message store yaratmamız gerekmektedir. Bir MAPI message store Outlook ta saklanan bütün bilgileri sağlayan bir data kaynağıdır.

Dim OLNameSpace As Outlook.NameSpace

OLNameSpace = OLApp.GetNamespace("MAPI")

Bir folder a erişmek için kullanılan metod GetDefaultFolder methodudur.GetDefaultFolder metodu içinde olFolderCalendar, olFolderInbox, olFolderOutbox, olFolderContacts, olFolderJournal, olFolderSentMail, olFolderDeletedItems, olFolderNotes, olFolderTask,

olFolderDrafts seçenekleri (Folderlar) bulunur. Örneğin tüm kontakaları almak istiyorsak;

Dim allContacts As Outlook.MAPIFolder

allContacts = OLNameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts)

yazarız. MAPIFolder, yukarıdaki seçeneklerdeki folderların hepsini kapsayan bir özel folderdır.

EntryID özelliği, bütün parçalarda kullanılan bir özelliktir. Bu özelliğe göre; her bir parçanın diğer parçalara verilmeyen sadece kendine ait olan bir string değeri vardır. Bu değerler databaselerdeki ID lere benzer.

Şimdi basit bir örnek yapalım. Listbox içine adres defterimizdeki isimleri ekleyelim ve bunlardan istediğimizi seçerek mail olarak gönderelim.

Yukarıdaki ekran düzenlemesini elde ettikten sonra  önce soldaki listboxa adres defterindeki kontak isimlerini ekleyeceğiz. Daha sonra “Sec” butonuna bastığımızda bu isimler otomatik olarak “TxtTo” textboxuna yazılacak ve diğer bilgileri girdikten sonra gönder dediğimizde mailleri Outlook üzerinden gönderecek. Şimdi bu basit programı yapalım.

 

Dim oapp As New Outlook.Application

Dim i As Integer

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles MyBase.Load

 

    Dim ons As Outlook.NameSpace

    ons = oapp.GetNamespace("MAPI")

    Dim contacts As Outlook.MAPIFolder

    contacts = ons.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts)

    Dim contact As Outlook.ContactItem

 

    For i = 1 To contacts.Items.Count

        contact = contacts.Items.Item(i)

        If Not lstContact.Items.Contains(contact) Then

           lstContact.Items.Add(contact.FullName)

        End If

 

    Next

 

End Sub

 

Private Sub Btnsec_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_ Handles btnsec.Click

 

    mail_gonderme.Enabled = True

 

    For i = 0 To lstContact.SelectedItems.Count - 1

 

       If txtTo.Text <> "" Then

          txtTo.Text = txtTo.Text + ";" + lstContact.SelectedItems.Item(i)

       Else

          txtTo.Text = lstContact.SelectedItems.Item(i)

       End If

 

    Next

 

End Sub

 

Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_ Handles btnSend.Click

 

    startOutlook(txtTo.Text, txtSubject.Text, txtBody.Text)

 

End Sub

 

Public Function startOutlook(ByVal toVal As String, ByVal subjectVal As String, ByVal bodyVal As String)

 

    Return a reference to the MAPI layer

    Dim ns As Outlook.NameSpace

    Dim fdMail As Outlook.MAPIFolder

    ns = oapp.GetNamespace("MAPI")

 

    ns.Logon([Profile],[Password],[ShowDialog],[NewSession])

    Logs on the user

    Profile: Bağlandığımız MAPI profilini veren String bir değerdir. Eğer user login 

    olmuşsa ya da biz default Outlook Profilini kullanacaksak bu alanı boş bırakırız.

    Password: Profili belirten passworddur.Profilde olduğu gibi durumlar söz konusu  

    ise bu alanı da boş bırakırız.

    ShowDialog: True ya da False olabilir. Eğer Outlook Profile Dialog Boxın

    görünmesini istiyorsak bu alanı True yaparız.

    NewSession: True yaparsak yeni bir durum yaratılır False olursa eski durum

    kullanılır.

    ns.Logon(, , True, True)

 

    Dim newMail As Outlook.MailItem Yeni bir MailItem objesi yaratılıyor.

    fdMail = ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderOutbox)

    newMail.Subject = subjectVal

    newMail.Body = bodyVal

    newMail.To = toVal

    newMail.SaveSentMessageFolder = fdMail

    newMail.Send() Outbox a gönderir.

    End Function

 

Bu yazımızda VB.Net ile Outlookun  kullanılması konusunu kısaca anlattım ve temel bir örnek

verdim.

 

Başka yazılarla görüşmek üzere...