arkadaşlar bu programımızda kendimize ait web sitemizden mail göndermeye çalışacağız. Kullanacağımız dil asp. programı görmek için tıklayın
öncelikle şunu söylemek isterim, bu programı ben yaptıysam herkes yapabilir. web tabanlı programlama konusunda kendime güvenim hiç yok denecek kadar az. Bu da demek oluyor ki yapacağımız iş aslında zor değil. c# ile basit chat programı yazımızda olduğu gibi önce temel bilgileri vermeye çalışalım. daha önceki yazımda (chat programı) bilgisayarların birbirleriyle anlaşabilmeleri için bazı protokollerin kullanıldığını belirtmiştim. tcp/ip gibi. mail göndermek için de bilgisayarların birbirleriyle etkileşmesi gerektiği için bu iş için de bir protokol tanımlanması gerekiyor: smtp (Simple Mail Transfer Protocol - Basit Mail Gönderme Protokolü). Bu protokolü kullanmak için ise bir smtp server gereklidir. biz bir web sitesini herhangi bir sunucuda yayımladığımız zaman, siteden mail atabilmemiz için sunucunun smtp server'ının olması gerekir. ben bir site yayımlamadığım için, bunu gmail'in smtp server'ını kullanarak yapacağım.
gmail'in server'ını kullanmayı aşağıda zaten anlatacağım ancak benim gibi amatör ama meraklı arkadaşlar için birkaç cümle eklemek isterim. windows'un kendi smtp server'ı da mevcuttur. server'ı kurabilmek için windows xp cd'nizi takıp denetim masası->program ekle/kaldır-> windows bileşenlerini ekle/kaldır sekmesini tıklayarak karşınıza çıkan menüden internet information services (iis) kutucuğunu işaretleyip ileriyi tıklamalısınız. smtp server iis içindedir. daha sonra iis ayarlarınızı yaparak tasarladığınız web sitenizi kendi bilgisayarınız üzerinden yayımlayabilirsiniz. ancak çok çok küçük bir kitleye hitap edebileceğinizi unutmayın.
gelelim programımıza... öncelikle tasarladığım arayüzü göstereyim:
büyük bir şey beklediyseniz, beklentilerinizi boşa çıkardığım için üzgünüm... arayüzü daha çok geliştirmek size kalmış. bu tasarım aşamasından sonra default.aspx.cs dosyasına kodlarımızı yazmaya başlayalım. programa eklemeniz gereken kütüphane System.Net.Mail; bütün işi bu kütüphane yapıyor zaten. postayı ekrandaki kime ve ileti alanlarını doldurarak oluşturduktan sonra tamam butonuna bastığımızda gerçekleşen olaylar şunlar:
protected void Button1_Click(object sender, EventArgs e)
{
MailMessage posta = new MailMessage();
posta.To.Add(TextBox1.Text);
posta.From = new MailAddress("mail adresiniz", "herhangi bir isim", System.Text.Encoding.UTF8);
posta.Body = TextBox2.Text;
posta.BodyEncoding = System.Text.Encoding.UTF8;
posta.Subject = "mail gönderme programı";
posta.IsBodyHtml = false;
posta.Priority = MailPriority.High;
SmtpClient smtp = new SmtpClient();
smtp.Credentials = new System.Net.NetworkCredential("kendi mail adresiniz", "şifreniz");
smtp.Port = 587;
smtp.EnableSsl = true;
smtp.Send(posta);
}
system.net.mail kütüphanesindeki mailmessage sınıfından posta isminde bir nesne türetiyoruz. öncelikle postayı kime göndereceğimizi belirtiyoruz. posta.to özelliği bu işi yapmamızı sağlıyor. ben sadece tek bir kişiye gönderdiğim için direk textbox'ın içeriğini atadım. ancak textboxa adresleri virgülle ayırarak yazdıktan sonra, textbox içeriğini split fonksiyonuna tabi tutarsanız, her mail adresini posta.to.add(mail adresi) metoduyla gönderilecekler listesine eklemeniz mümkün. sıra geldiği postanın kimden gittiğine. bu kişi siz oluyorsunuz. posta.from özelliğine mailaddress nesnesi atayarak bu sorunu da çözüyoruz. posta.body özelliğine de iletimizi yazdığımız textbox'ın içeriğini atayarak, mailimizi hazırlamış bulunuyoruz. eğer yazdığımız ileti html dilinde yazıldıysa posta.isbodyhtml özelliğini true şeklinde değiştirmemiz gerekirdi. Son olarak mailimizin gönderme önceliğiliğini yüksek olarak ayarlıyoruz ve artık gmail'e bağlanmaya çalışıyoruz. bunun için smtpclient isimli sınıftan bir smtp protokolüne uygun istemci tanımlıyoruz ve istemci nesnemizin (smtp nesnesi) gmaile güvenli olarak giriş yapabilmesi için kendi mail adresimizi ve şifremizi yazıyoruz.gmail mail göndermek için 587 nolu portu kullanır. port numaramızı da belirttikten sonra enableSsl özelliğini true olarak ayarlıyoruz. Ssl (secure sockets layer), soketlerin güvenli bir katman üzerinden çalışması için geliştirilmiştir. bu konunun dışında olduğu için minik bir açıklama yeterli olur diye düşünüyorum. son olarak smtp.send(posta) şeklinde smtp istemcimizin send metoduna postamızı ekleyip maili gönderiyoruz. işte herşey bundan ibaret. yukarıda bahsettiğim gibi kendi smtp server'ınızı kullanmaya karar verirseniz gmaile bağlanmak yerine ilgili alanlara localhost yazmanız yeterli olacaktır. Umarım faydalı bir yazı olmuştur, iyi çalışmalar dilerim. Hoşçakalın...
c# ile Mail Atma Programı
Gönderen z.burak güven zaman: 17:28
Etiketler: Programlama
Kaydol:
Kayıt Yorumları (Atom)
4 yorum:
yorum yazmadan geçemedim :)
güzel bi makale olmuş. tebrik ederim..
iyi cok guzel yazmıssın ama sanki bir seyi unutmussun :)
smtp.Host = "smtp.gmail.com";
dememiz gerekiyor. :)
yahu siz bu ornekleri yazarken hiç denemiyormusunuz ben denedim calışmıyor smtp.host ta verdım
güzel anlatım ve çalışıyor da..
Yorum Gönder