Bolu Beyi tarafından yazıldı Kasım - 8 - 2011 0 Yorum

Verdiğim c sharp kodlarının yanlarına yorum satırı olarak açıklamalarını yaptım. Kodlara geçmeden önce kısaca açıklayayım ben yine. “MailGonder” adında bir fonksiyon oluşturduk ve try catch bloğu içerisinde kodlarımızı yazdık. Try catch bloklarını koymamım sebebi, hatalı bir mail adresi yazıldığında veya yanlış şifre girildiğinde uyarı vermesi içindir. Eğer girdiğiniz şifrenin görünmesini istemiyorsanız, visual studionun sağ tarafından, seçili textboxun özelliklerine(properties menüsü) gelerek, “passwordchar” kısmına “*” koyabilirsiniz. Bu programımızla sadece hotmail adreslerine mail gönderebiliyoruz. Eğer Gmail‘e de göndermek isterseniz aşağıda da belirttiğim gibi 587 olan portu 465 olarak değiştirin. Bir de “kullanici.host” yazan kısma “smtp.gmail.com” yazın. MailGonder fonksiyonumuz haricinde bir de “bildirim_mesaji” adında fonksiyon ekliyoruz. Bu fonksiyon bize, göndermek istediğimiz mailin ulaşıp ulaşmadığı hakkında uyarı veriyor. Form uygulaması projemizi açınca, bir adet buton, dört adet textbox, bir adet richtextbox ekliyoruz. Ayrıca “System.Net.Mail” adındaki kütüphanemizi de ekliyoruz. “Ne uğraşacağım?” derseniz, kendi yaptığım uygulamayı da buradan indirebilirsiniz: Mail gönderme programı

public void MailGonder()
{
try
{
MailMessage mail = new MailMessage(); // MailMessage nesnemisi oluşturuyoruz.
mail.From = new MailAddress(kendi_mail_adresimiz.Text); // Kendi mail adresimizi buraya yazıyoruz.
mail.To.Add(gonderecegimiz_mail.Text); // Hangi mail adresine göndereceksek, o adresi buradaki textboxa yazıyoruz.
mail.Subject = (konu.Text); // Mail konusu
mail.Priority = MailPriority.High;
mail.Body = icerik_text.Text; // Mail içeriğinin yazılacağı yer.
SmtpClient kullanici = new SmtpClient(); // Mail göndermek için smtp sunucusunu kullanıyoruz. Smtp sunucusuna bağlanmak için “kullanici” adında nesne oluşturuyoruz.
kullanici.Credentials = new System.Net.NetworkCredential(kendi_mail_adresimiz.Text, sifremiz.Text); // Mail adresi ve şifremizi gösteriyoruz.
kullanici.Host = “smtp.live.com”; // hotmail için smtp sunucu ismi. Gmail için kullanici.Host = “smtp.gmail.com”
kullanici.Timeout = 50000;
kullanici.Port = 587; // hotmail port numarası. Gmail için port numarası:465                kullanici.SendCompleted += new SendCompletedEventHandler(bildirim_mesaji); // Mailin gönderilip gönderilmediğine dair bilgi alıyoruz.
kullanici.EnableSsl = true; // ssl ‘i aktifleştiriyoruz.
string userState = “Mail Gönderiliyor…”;
kullanici.SendAsync(mail, userState); //Gönderme olayı
}
catch
{
MessageBox.Show(“Yanlış mail adresi veya şifre girdiniz, lütfen tekrar deneyiniz…”, “Hata”);
}
}

public void bildirim_mesaji(object sender, AsyncCompletedEventArgs e)//Bu fonksiyon içerisinde göndermek istediğimiz mailin gidip gitmediği hakkında uyarı aldırıyoruz.
{
if (e.Cancelled)
MessageBox.Show(“Mail Gönderilemedi!”,”Hata”);
else if (e.Error != null)
MessageBox.Show(“Hata: ” + e.Error.ToString());
else
MessageBox.Show(“Mail Gönderildi…”,”Başarılı”);
}

Bolubeyinden selam olsun….


Time limit is exhausted. Please reload CAPTCHA.