ASP.NET ile Mail göndermek
Çoğu web uygulaması için artık kullanıcıları ile email aracılığıyla
iletişimde bulunmak kaçınılmazdır. Neyse ki artık Asp.NET ile mail göndermek
çok kolay.
System.Web.Mail namespace (uzayadı) 'nın sağladığı sınıf ve objeler
ile bir email oluşturabilir, istediğiniz özelliklerini düzenleyebilir,
mailinize dosya ekleyebilir ve bir SMTP server üzerinden mailinizi alıcılarına
gönderebilirsiniz.
System.Web.Mail namespace (uzayadı) CDOSYS (Collaboration Data Objects for Windows 2000) bileşenini kullanarak email gönderilmesini sağlar. Mail gönderebilmek için herhangi bir SMTP sunucunun varlığı ön koşuldur.
Mail.aspx adında bir web formu tasarlayalım. Ve txtKimden, txtKime, txtKonu,
txtMetin isimleri ile TextBox web kontrollerini sayfamıza ekleyelim. Bir de gönder
butonu oluşturalım ve gönder butonunun tıklanması ile çalışacak kodu aşağıdaki
gibi yazalım. System.Web.Mail uzayadını tasarladığımız sayfanın code-behind
bölümünde import etmeyi unutmayalım. Yani Mail.aspx.vb sayfasında sayfanın
en üstüne aşağıdaki satırı ekleyelim.
Gönder butonunun tıklanması ile ilk önce System.Web.Mail uzayadında
yeralan SmtpMail sınıfıının bir örneği oluşturuldu. Ardından yeni oluşturulan
SmtpMail objesinin SMTP sunucusunun adı veya IP adresi sağlandı.SMTP
sunucusunun adını bir sistem parametresi olarak düşünerek bu parametrenin
değerini Web.Config dosyasında tutmayı uygun gördüğümüz için Web.Config
içinde appSettings bölümüne ekledik.
Eklediğimiz bu parametrenin değerine de aşağıdaki kod yardımı ile ulaştık.
Ancak bu sınıfı kullanabilmek için code-behind sayfamızın başına
System.Web.Mail uzayadını eklediğimiz gibi System.Configuration.ConfigurationSettings
uzayadını da eklemeliyiz.
Mailin gönderilmesini sağlayan metot olan Send metoduna bazı parametreler
geçmemiz gerekiyor. Bunlar "from" (kimden), "to" (kime),
"subject" (konu) ve "messageText" (mesaj metni)
parametreleri. Send metodu bu dört parametreyi de string olarak alır.
Uygulamanız kullanıcılarına otomatik mailler atacaksa bu maillerin gönderileceği
adresler ("from" parametresi) de birer sistem parametresi olarak düşünülerek
Web.Config dosyasına eklenebilirler.
System.Web.Mail uzayadı incelendiğinde MailMessage sınıfının varlığı
farkedilecektir. MailMessage kullanımı bize yukarıda anlatılan yönteme göre
daha geniş bir esneklik sağlayacaktır. Şöyle ki, MailMessage sınıfının
Priority (öncelik) özelliği vardır ve bu özellik kullanılarak göndereceğimiz
mailin önceliğini belirtebiliriz. Aynı zamanda göndereceğimiz maile bir
dosya iliştirebiliriz.Veya mailimizin formatını (Html veya Text)
belirleyebiliriz.
Bize sağladığı esnekliklerden dolayı MailMessage sınıfından türetebileceğimiz
mail nesnelerini kullanmak daha çok tercih edilecektir.
Gönder butonumuzun kodunu değiştirelim ve aşağıdaki gibi yazalım.
Gönder butonuna tıklanması ile xMail ismi ile MailMessage sınıfının
bir örneğini türetiyoruz. Sonra gönderilecek mail için "From"
(kimden), "To" (kime) ve"Cc" (carbon copy) bilgilerini
formdaki textbox alanlarından okuyoruz.
Mail için "Priority" (öncelik) belirtiyoruz.
Ardından web sunucusunda C:\AspNet\Whidbey.jpg dosyasını maile iliştiriyoruz. Mail için encoding ve format seçtikten sonra
mailin konusunu ve metnini ayarlıyoruz. Mail için Html formatı seçtiğimiz için
metin bölümünü html olarak hazırlayabilirsiniz.
Dikkat ederseniz kodumuzun son bölümü ilk metoddaki kod ile hemen hemen
aynı. Tek fark SmtpMail nesnesinin Send metodunun başka bir parametre setinin
burada kullanılmış olması. İlk örnekte mailin kimden, kime, içeriği ve
başlığı parametre setini oluştururken, son örneğimizde tek fakat zengin
bir MailMessage nesnesi Send metoduna parametre olarak geçildi.