|
C# ile Outlook 2000 Üzerinden Mail Göndermek |
|
Gönderiliyor lütfen bekleyin... |
|
|
Bu
makalemizdeki örnek uygulamamızda Outlook 2000 üzerinden mail gönderme işleminin nasıl yapıldığını
incelemeye çalışacağız. Gönderdiğimiz mail Outlook üzerinden gittiği için “Sent Items” klasöründe de duracak. Bunun
için bir C# Windows uygulaması oluşturup, projeye referans olarak COM nesnelerinden MS Outlook 9.0 Object Library’ yi
eklememiz gerekiyor.
Not :Bu proje Outlook 9.0 üzerinde çalışmaktadır.
Bu nedenler Outlook uygulamasının 10 veya 11nci versiyonlarındaki metotlar farklı şekilde çalışabilir.
Form tasarımızımda metin kutularını, düğmeleri, mail tipi seçimi için bir
ComboBox ve dosya eklemek için çoklu seçim özelliği belirlenmiş bir
OpenFileDialog bileşenini kullanacağız. Şimdi aşağıdaki formu hazırlayıp
kodlarımızı eklemeye başlayabiliriz.
Bu uygulamada mail gönderme işlemini
gerçekleştirebilmek için Outlook’ un açık olmasına gerek yoktur. Eğer gönderilmek istenen mail
için ön izleme yapmak istenirse ve Outlook çalışmıyorsa
yeni bir Outlook penceresi otomatik olarak açılacaktır. Öncelikle genel tanımlamalar
yaparak işe başlıyoruz.
private Outlook.Application
outlookApp;
privateOutlook.MailItem outlookMail; |
Not : Outlook’un bazı versiyonlarında Outlook.Application yerine
Outlook.ApplicationClass sınıfı da kullanılabilir.
private void Form1_Load(object sender, System.EventArgs e)
{
outlookApp=new
Outlook.Application();
create_Mail();
} |
Create_Mail metodu yeni bir mail oluşturur. Bu mail
oluşturma kısmı ön izleme, kaydetme ve dosya ekleme metotlarında da gerektiği için
bir metot olarak tanımlamakta yarar var.
private void create_Mail()
{
outlookMail=(Outlook.MailItem)
outlookApp.CreateItem(Outlook.OlItemType.olMailItem);
lst_ATTACH.Items.Clear();
} private void get_Mail()
{
outlookMail.To=txt_TO.Text;
outlookMail.Subject =txt_SUBJECT.Text;
if
(get_Mail_Type()=="HTML" ) outlookMail.HTMLBody=txt_BODY.Text;
else outlookMail.Body=txt_BODY.Text;
}
private string get_Mail_Type()
{
returncmb_MAIL_TIPI.Text;
}
|
Dosya ekleme sırasında iPosition olarak tanımlanan tamsayı
değer eklenen dosyanın yerini belirler. Burada pozisyon olarak mailin body
uzunluğundan 1 fazlası olacak şekilde dosya pozisyonu belirlenmiştir. get_Mail_Body_Length() metodu
ise mail tipine göre body
uzunluğunu belirler.
private void openFileATTACHMENT_FileOk(object sender,
System.ComponentModel.CancelEventArgs e)
{
foreach (string
Dosya in openFileATTACHMENT.FileNames)
{
try
{
get_Mail();
int iPosition =
get_Mail_Body_Length()+1;
object iAttachType =
(Object)Outlook.OlAttachmentType.olByValue ;
outlookMail.Attachments.Add(Dosya,iAttachType,iPosition,Dosya);
lst_ATTACH.Items.Add(Dosya);
}
catch(Exception exp)
{
MessageBox.Show(exp.Message);
}
}
} private int
get_Mail_Body_Length()
{
intlen=0;
try
{
if
(get_Mail_Type()=="HTML" )
len=outlookMail.HTMLBody.Length;
else
len=outlookMail.Body.Length;
}
catch (Exception exp)
{
len=0;
}
return len;
}
private void
btn_KAYDET_Click(object sender, System.EventArgs
e)
{
outlookMail.Save();
}
private void
btn_SEND_Click(object sender, System.EventArgs
e)
{
get_Mail();
outlookMail.Send();
lblMsg.Text="Mail Gönderildi";
create_Mail();
// Bir gönderimden sonra yeni bir gönderim yapmak için yeni mail oluşturuluyor.
}
private void
btn_PREVIEW_Click(object sender, System.EventArgs e)
{
get_Mail();
outlookMail.Display(this);
}
|
Örnek olarak sonuç ekranında hazırladığımız makaleye ait
dokümanları [email protected] mail adresine gönderiyoruz.
Kaynak kodlar için lütfen tıklayınız.
Fatih Yüceyurt
[email protected]
Makale:
C# ile Outlook 2000 Üzerinden Mail Göndermek C#, Visual C# ve .NET Fatih Yüceyurt
|
|
|
-
-
Eklenen Son 10
-
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
|
|