ASP.NET ile E-Mail Gönderme

ASP.NET'te en basit şekliyle e-mail göndermek için gerekli kodlar ve bunların açıklaması

Klasik ASP 'nin ayrıntı denebilecek bazı işleri yapabilmesi için bileşenlere ihtiyaç duyulmasından hep şikayet edilir. Hatta birçok kişi ASP 'nin en kötü yanının bu olduğunu düşünür. ASP ile e-mail göndermek için server'da gerekli bileşenlerden en az birisinin yüklü bulunması gerekir.

ASP kaynak sitelerinin ve böylece ASP kullanımının artmasıyla birlikte bedava ASP destekli bulundurma hizmeti veren siteler açılmaya başladı. Ancak bunlar bedava oldukları için bazı özelliklerden yoksunlar. Bazılarına FTP ile bağlanamazken, bazılarında bulunan sitelere ulaşmak mümkün olmuyor. Çoğunda ise herhangi bir mail bileşeni yok. Yani bedava ASP bulundurma sitesinden hesabı bulunan kişiler e-mail gönderemiyorlar.

ASP.NET 'te durum böyle değil. E-mail göndermek için ayrı bir bileşene ihtiyaç yok. ASP.NET ile site yapan herkes iletişim sayfasında e-mail adresini vermekle yetinmeyip mail formunu da hazırlayabilir. Peki nasıl ?

Şimdiye kadar ki örneklerde herhangi bir namespace (isimuzayı) 'e ihtiyaç duymadık. Code-behind özelliğini kullanmadığımız için web kontrolü kullanacağımızda System.Web.UI.WebControls namespace 'ini sayfamıza dahil etmemiz gerekmedi. Ancak bu sefer buna gerek duyuyoruz. Mail göndermek için gerekli namespace 'i "Import" direktifini kullanarak sayfamıza dahil edeceğiz. Bu namespace System.Web.Mail, CDOSYS (Collaboration Data Objects for Windows 2000) bileşenini kullanarak mail göndermemize olanak verir.

<%@ Page language="VB" debug="true" %>
<%@ Import Namespace="System.Web.Mail" %>

System.Web.Mail namespace 'i içerisindeki MailMessage ve SmtpMail sınıflarını kullanacağız. MailMessage sınıfının özelliklerini kullanarak gönderilecek adres, konu ve mesaj gibi içeriği oluşturan elemanları belirleyeceğiz. SmtpMail sınıfıyla ise maili göndereceğiz.

E-mail gönderme formu
E-mail gönderme formu


Önce ziyaretçinin bilgi girişi yapacağı formu hazırlıyoruz. Bu form gönderen kişinin e-mail adresinin, e-mailin konusunun ve mesajın yazılacağı birkaç TextBox kontrolünden ve tabii ki bir Button kontrolünden oluşacak. Script etiketleri içerisinde MailGonder isimli bir sub oluşturuyor ve Button kontrolünün OnClick özelliğine bu sub 'ın ismini yazıyoruz. Şimdi MailGonder 'in içerisinde bulunması gereken kodlara sıra geldi.

<script runat="server">
Sub MailGonder(Sender As Object, E As EventArgs)
Dim YeniMail As New MailMessage()
YeniMail.From = txtKimden.text
YeniMail.To = "info@site.com"
YeniMail.Subject = txtKonu.text
YeniMail.Body = txtMesaj.text

SmtpMail.SmtpServer = "mail.site.com"
SmtpMail.Send(YeniMail)

Response.Write("Mail gönderildi")
Response.End
End Sub
</script>

MailGonder sub 'ında ilk olarak türü MailMessage olan yeni bir nesne oluşturuyoruz. Ardından bu nesnenin From (Kimden), Subject (Konu) ve Body (Mesaj) özelliklerine hazırladığımız bilgi giriş formundaki kontrollerin değerlerini atıyoruz. To (Kime) özelliğine değeri direk atıyoruz. Çünkü e-mail formuyla sadece bu adrese e-mail gönderilebilmesini istediğimizi farzediyorum

Daha sonra SmtpMail.SmtpServer özelliğini kullanarak e-maili gönderirken kullanılacak olan mail server 'ın adresini belirliyoruz. Son aşama ise e-mailin gönderilmesi.. SmtpMail sınıfının Send yöntemine, e-mail mesajının içeriğini oluşturmak için kullandığımız YeniMail 'i parametre olarak yolluyoruz. Ve e-mail gönderiliyor. Hepsi bu kadar..

Sayfanın tüm kodu
<%@ Page language="VB" debug="true" %>
<%@ Import Namespace="System.Web.Mail" %>

<script runat="server">
Sub MailGonder(Sender As Object, E As EventArgs)
Dim YeniMail As New MailMessage()
YeniMail.From = txtKimden.text
YeniMail.To = "info@site.com"
YeniMail.Subject = txtKonu.text
YeniMail.Body = txtMesaj.text

SmtpMail.SmtpServer = "mail.site.com"
SmtpMail.Send(YeniMail)

Response.Write("Mail gönderildi")
Response.End
End Sub
</script>

<form runat="server" style="font: 11px verdana;">
Kimden :<br>
<asp:TextBox id="txtKimden" runat="server"
width="230"
/>
<br>
Konu :<br>
<asp:TextBox id="txtKonu" runat="server"
width="230"
/>
<br>
Mesaj :<br>
<asp:TextBox id="txtMesaj" runat="server"
TextMode="MultiLine" Rows="13" Cols="40"
/>
<br>
<asp:Button id="btnGonder" runat="server"
text="Gönder" OnClick="MailGonder"
/>

</form>

Sonuç

Gördüğünüz gibi ASP.NET ile e-mail göndermek çok kolay ve ayrıca birşeye ihtiyaç duyulmadan yapılabiliyor. Gerekli olan tek şey ASP.NET desteği veren bir bulundurma hesabınızın bulunması diyebiliriz. Peki HTML veya Text e-mail gönderme seçenekleri yok mu ? Tabii ki var ancak bunlar daha ileriki yazıların konusu olacak. Bu makalede en basit haliyle e-mail gönderdik. Ayrıntıları ileride.. Görüşmek üzere..

, ,

Arşivden

Yorum bulunmuyor.

Yorum yazabilirsiniz


* [b], [i] ve [quote] serbest