evcil.net noktanın egemenliği

708 / 020

ASP.NET ile E-Mail Gönderme

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.








class=ASP_PageDirective><%@ 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

alt="E-mail gönderme formu" src="/cgi-bin/files/2002082_ornek8.gif"
width=399>


Ö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.









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

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

Response.Write( class=vb_s>"Mail gönderildi")
Response. class=vb_k>End
End class=vb_k>Sub
</ class=HTML_ElementName>script class=HTML_AtributList>>

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

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


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

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

Response.Write( class=vb_s>"Mail gönderildi")
Response. class=vb_k>End
End class=vb_k>Sub
</ class=HTML_ElementName>script class=HTML_AtributList>>

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


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..

Yazan: Sacid Ünal

No description. Please complete your profile.
Comments (0) Trackbacks (0)

No comments yet.


Leave a comment


No trackbacks yet.

Sayfalar

Kısımlar

Desteklediklerimiz

Ay bazında arşiv

Haberleşme