| 
                
             | 
        
        
            
                
                    
                        | 
                            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
                         
                     
                 
                
                
             | 
        
        
            | 
                
             |