arşiv

yazılar buna göre etiketlendi; ‘outlook’

C# ile Outlook 2007 Üzerinde Randevu Oluşturma ve Okuma

Cumartesi, 06 Şub 2010 burakkanmaz 2 yorum

C# ile, ister Outlook Add-In ister normal bir Windows Form uygulaması yaparken eğer Outlook üzerindeki takvim verilerine (randevulara) erişmek ve yeni randevular oluşturmak kolaylıkla yapılabilmektedir. Bu amaçlar için oluşturduğum metotları beraber inceleyelim.

Öncelikle yeni bir randevu oluşturalım,

using Outlook = Microsoft.Office.Interop.Outlook;

public void CreateAppointment(string subject, string location, string body, DateTime startDate, DateTime endDate)
        {
            var outlookApp = new Outlook.Application();
            var oAppointment =
                (Outlook.AppointmentItem)outlookApp.CreateItem(Outlook.OlItemType.olAppointmentItem);
            oAppointment.Subject = subject;
            oAppointment.Location = location;
            oAppointment.Body = body;
            oAppointment.Start = startDate;
            oAppointment.End = endDate;
            oAppointment.ReminderSet = true;
            oAppointment.ReminderMinutesBeforeStart = 15;
            oAppointment.ReminderPlaySound = true;
            oAppointment.Importance = Outlook.OlImportance.olImportanceHigh;
            oAppointment.BusyStatus = Outlook.OlBusyStatus.olBusy;
            oAppointment.Save();
        }

Bu metod sırasıyla öncelikle Outlook’a bağlanıyor, ardından yeni bir Appointment (randevu) oluşturuyor.

Daha sonra bu randevunun Subject (Konu) kısmını, Location (Konum, Yer) kısmını, başlama ve bitiş tarihlerini metot tanımlamasından alarak yazıyoruz. Eğer dilersek bu randevuyu 15 dakika kalasıyla hatırlatmasını sağlıyoruz ve bu hatırlatmayı yaparken ses çalmasını da ayarlıyoruz. Diğer yüksek öncelikli ve durumu meşgule çevirme seçeneklerimizi de belirledikten sonra Save komutu ile bu randevuyu Outlook’a kaydediyoruz.

Outlook içerisinde ki tüm takvim öğelerini kullanmak için ise şu metodu kullanabiliriz.

public List<Outlook.AppointmentItem> GetAppointments()
        {
            var outLookApp = new Microsoft.Office.Interop.Outlook.Application();
            Outlook.NameSpace nms = outLookApp.GetNamespace("MAPI");
            Outlook.MAPIFolder mpiFolder = nms.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
            string body;
            var appItems = new List<Outlook.AppointmentItem>();
            foreach (Outlook.AppointmentItem task in mpiFolder.Items)
            {
                appItems.Add(task);
            }
            return appItems;
        }

Bu metot ile takvimdeki tüm öğeleri alacağız. Öncelikle Outlook’a bağlanmak için gerekli tanımımızı yapalım. Daha sonra MAPI klasörlerine erişmek için bir nesnemizi oluşturalım ve bu bağlantıyı Calendar ile ilişkili olarak başlatalım.

Ardından geri döndürmek için Outlook’un AppointmentItem nesne tipini tutacak bir liste oluşturalım. Daha sonra foreach ile MAPI klasöründe ki tüm takvim öğeleri arasında gezinerek listemize atalım. Son olarak listemizi geri döndürelim ve kullanalım.

İşte bu kadar basit bir şekilde Outlook Takvim öğelerine erişebilir ve yönetebilirsiniz. Bu metotları geliştirmek sizin elinizde ;)

C# ile Outlook Verilerinize Erişin

Salı, 03 Mar 2009 burakkanmaz 4 yorum

C# ile Outlook’a bağlanıp verileri istediğiniz gibi düzenleyebilir ve okuyabilirsiniz.
Öncelikle projenize add reference tıklayıp oradan COM kısmından Microsoft Outlook Object Library eklemeniz gerekli.
Daha sonra aşağıdaki kodları kullanabilirsiniz.

// projemizin en tepesine bu using tanımlamasını yapmamız gerekmekte
// using Outlook = Microsoft.Office.Interop.Outlook;
// daha sonra herhangi bir olay altına bu kodları yazabilirsiniz
Outlook._Application outlook;
Outlook.NameSpace ns;
Outlook.MAPIFolder cf;
Outlook.Items contacts;
Outlook.ContactItem contact;
// Outlook'a bağlanıyoruz
outlook = new Outlook.ApplicationClass();
// MAPI klasorlerine erişim yapıyoruz
ns = outlook.GetNamespace("MAPI");
// olFolderContacts yazarak Kişiler klasörüne erişiyoruz
cf = ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);
// default olarak tüm kişileri bir Items değişkenine atıyoruz.
contacts = cf.Items;
// Artık bir kişi seçmek istediğimizde contact değişkenine alabileceğiz.
// Burada Find ile tam adı Burak Kanmaz olan kişiyi seçiyoruz.
contact = (Outlook.ContactItem)contacts.Find("[FullName] = 'Burak Kanmaz'");
// textbox1 e kişinin cep telefonunu yazdırıyoruz.
textBox1.Text = contact.MobileTelephoneNumber.ToString();
// burada sınıfların alt öğelerini inceleyip ihtiyacınıza göre bütün verilere erişebilir
// ve onları düzenleyebilirsiniz.
Categories: Günlük Tags: , ,