logo
Samet Karaca    10.06.2018    91 Görüntüleme     Yorum
Arkadaşlar öncelikle mail gönderebilmek için projemizin başına usinng System.Net.Mail; referansını ekliyoruz. Smtp (kilik doğrulama) kullanarak mail göndereceğimiz için, öncelikle smtp nesnemizi oluşturacağız. Aslında smtp kullanmadan da 25 numaralı port üzerinden kimlik doğrulama kullanmadan da mail gönderebiliriz. Ancak bu durumda gönderdiğimiz mailin spam kutusunu düşme ihtimali çok yüksek. Şimdi dilerseniz öncelikle smtp nesnemizi oluşturalım.
SmtpClient smtp = new SmtpClient();
Şimdi oluşturduğumuz "smtp" adlı nesnemizin özelliklerine bakalım; smtp.Host : Mail sunucumuzun smtp adresini tutar. String türü değer alır. smtp.Port : Mail sunucumuzun port numarasını tutar. Intiger türü değer alır. smtp.EnableSsl : SSL şifreleme kullanılıp kullanılmayacağı ayarlanır. Boolean türü değer alır. smtp.Credentials : Kullanıcı adı ve şifre bilgilerini tutar. smtp.Send() : Hazırladığımız maili göndermeye yarar Şimdi bu bilgilerden istifade ederek smtp nesnemizi yapılandıralım. Kodlar içerisinde anlatımlar mevcuttur;
SmtpClient smtp = new SmtpClient(); // smtp nesnesi oluşturuyoruz
/*
* Nesnemizi oluşturduğumuza göre şimdi mail sunucumuzun adresini girelim
* Gmail ile kimlik doğrulama sorunu yaşadığım için ben Outlook mail kullandım
* Mail adresinizin smtp ayarlarını sunucunuzdan öğrenebilirsiniz
*/
smtp.Host = "smtp-mail.outlook.com"; // Mail sunucusu adresi
smtp.Port = 587; // Outlook için 587
smtp.EnableSsl = true; // Sunucu SSL kullanıyorsa True olacak
// mail adresimizin kullanıcı adı ve parolasını yazıyoruz
smtp.Credentials = new System.Net.NetworkCredential("isim@outlook.com","parola"); 
Şimdi smtp sunucumuzu yapılandırdığımıza göre, bir eposta nesnesi hazırlayıp, inceleyelim. Eposta nesnemizi oluşturuyoruz;
MailMessage eposta = new MailMessage();
Şimdi gelelim nesnemizin özelliklerini incelemeye: eposta.From : Gönderdğimiz mailde görünecek olan mail adresi ve ismi tutar. eposta.To : Alıcı adreslerini tutar, Add() fonksiyonu ile kullanılır, strin türü değer alır. Eğer birden fazla mail adresi eklenecek ise, adresler arasında virgül kullanılır. eposta.CC : Bilgi olarak eklenecek mail adreslerini tutar. Add() fonksiyonu ile kullanılır, strin türü değer alır. Eğer birden fazla mail adresi eklenecek ise, adresler arasında virgül kullanılır. eposta.Bcc : Gizli olarak eklenecek mail adreslerini tutar. Add() fonksiyonu ile kullanılır, strin türü değer alır. Eğer birden fazla mail adresi eklenecek ise, adresler arasında virgül kullanılır. eposta.Subject : Göderilecek e-posta konusunu tutar. String türü değer alır. eposta.Body : Göderilecek e-posta gövdesini (içeriğini) tutar. String türü değer alır. eposta.Attachments : Gönderilecek epostaya eklenen ek dosyalarını tutar. Şimdi gelelim kodlama yapısına. Kodlar üzerinde anlatımlar mevcuttur;
// eposta adında bir mail nesnesi oluştur
MailMessage eposta = new MailMessage(); 
// Giden mailde görünecek e-posta adresi ve isim email adresi smtp ile aynı olmayınca hata veriyor.
eposta.From = new MailAddress("isim@outlook.com","KodDefteri.Net");
// Mail gönderilecek kişi(ler). Eğer birden fazla kişiye gidecekse, kişiler arasına virgül koyulacak
eposta.To.Add("isim1@mail1.com, isim2@mail2.com"); 
if (txtBilgi.Text != "") //eğer bilgi maili gidecek kişi varsa
    eposta.CC.Add("ism3@mail3.com, isim4@mail4.com"); // CC özelliğine ekle
if (txtGizli.Text != "") // Eğer gizli alıcı varsa
    eposta.Bcc.Add("isim5@mail5.com"); // bcc özelliğine ekle
if(txtKonu.Text != "") // eğer konu varsa
    eposta.Subject = "C Sharp Dersleri"; // konu özelliğine ekle
eposta.Body = "Bu bir email mesajıdır. Buraya mail içeriği gelecek"; // mesaj içeriğini body özelliğine ekle
if(richTxtEkle.Text != ""){ // eğer ek eklenmişse
	// ekleri dosya yolu ile birlikte bir string dizisinde tutuyoruz
	string[] ekler = {"c:\ek1.png","c:\ek2.pdf","c:\ek3.docx"}
	// Ardından ekleri foreach döngüsü ile Attachments özelliğine ekliyoruz
    foreach(string ekle in ekler){
        eposta.Attachments.Add(new Attachment(@ekle)); // ekleri Attachments özelliğine ekle
    }
}
try{ // Hata kontrolü
    smtp.Send(eposta); // eposta nesnesini smtp.Send fonksiyonu ile gönder
}catch(Exception ex){ // Hata oluştuysa oluşan hatayı ex değişkenine aktar
    MessageBox.Show("Mail gönderilirkene bir hata ile karşılaşıldı: " + ex.Message); // Hatayı kullanıcıya bildir
}
C# ile örnek mail gönderme programı kaynak kodlarıyla birlikte aşağıda verilmiştir;
ek
CSharpMailGönderme.zip
  • Yazar : Samet Karaca
  • Ekleme Tarihi : 10.06.2018
  • Görüntülenme : 91
  • Kategorideki diğer Dersleri : C Sharp
  • Facebook Twitter Google Plus Freelyshout Youtube Web Site
Bu Dersi Beğendiniz mi?

0% YARARLI

KATEGORİLER