ADNAN ŞAHİN

A quest for software excellence...

ASP.NET ile E-mail Gönderme

Merhaba Arkadaşlar, bu yazımızda Asp.Net’te E-mail gönderme işlemini anlatacağım.  Mail gönderme protokolü olarak SMTP (Simple Mail Tranfer Protocol) protkolünü kullanacağız. E-mail göndermek için sunucu ve istemci arasındaki iletşimi kuran protokoldür. O halde bu işlemleri bir örnek üzerinde açıklayalım.

Öncellikle bir Asp.Net Web projesi oluşturuyoruz.


 

Projemizi oluşturduktan sonra projemize sağ tıklayıp Add > New Item > Web Form  sayfası ekliyoruz. Sayfamızı ekledikten sonra sayfamızın  Design kısmına gelip aşağıdaki form tasarımını yapıyoruz.


Yukarıdaki tasarımın source kodları:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

    <style type="text/css">

        .inputRow {

                       width: 100%;

            font-family: Arial, Helvetica, sans-serif;

            font-size: 11px;

            font-weight: bold;

            background-color: black;

            font-weight: bold;

            float: left;

            border-bottom: 1px dotted white;

        }


        .inputColumnLabel {

            width: 14%;

            line-height: 25px;

            text-align: left;

            color: #6dde88;

            padding-left: 3%;

            float: left;

        }

 

        .textColumn {

            line-height: 25px;

            text-align: left;

            float: left;

            width: 83%;

            color: white;

        }

    </style>

</head>

<body>

    <form id="form1" runat="server">

        <div>

            <div class="inputRow">

                <div class="inputColumnLabel">

                    <asp:Label ID="lblTo" runat="server" Text="To:"></asp:Label>

                </div>

                <div class="textColumn">

                    <asp:TextBox ID="txtTo" runat="server" Width="300px"></asp:TextBox>

                </div>

            </div>

            <div class="inputRow">

                <div class="inputColumnLabel">

                    <asp:Label ID="lblSubject" runat="server" Text="Subject:"></asp:Label>

                </div>

                <div class="textColumn">

                    <asp:TextBox ID="txtSubject" runat="server" Width="300px"></asp:TextBox>

                </div>

            </div>

            <div class="inputRow">

                <div class="inputColumnLabel">

                    <asp:Label ID="lblContent" runat="server" Text="Content:"></asp:Label>

                </div>

                <div class="textColumn">

                    <asp:TextBox ID="txtContent" runat="server" Height="100px" Width="300px"></asp:TextBox>

                </div>

            </div>

            <div class="inputRow">

                <div style="float: right; padding: 10px">

                    <asp:Button ID="btnSend" runat="server" Width="120px" OnClick="btnSend_Click" Height="30px"  Text="Send" />

                </div>

            </div>

        </div>

    </form>

</body>

</html>

 

Formumuzu tasarladıktan sonra butonumuza çift tıklayıp, click olayına aşağıdaki kodları yazıyoruz.

 

        protected void btnSend_Click(object sender, EventArgs e)

        {

 

            //Oluşturacağımız mail şablonunu temsil eder.

            MailMessage mail = new MailMessage();

            //Mailin kimin gönderdiği ve görüntülenecek isim

            mail.From = new MailAddress(ConfigurationManager.AppSettings["From"], ConfigurationManager.AppSettings["SiteName"]);

            mail.To.Add(txtTo.Text);//Mail gönderilecek adres

            mail.Subject = txtSubject.Text;//Mailin konusu;

            mail.Body =txtContent.Text;//Mailin içeriği.

            mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;

            //Smtp protokulü üzerinde mail göndermek için kullanılır.

            SmtpClient client = new SmtpClient(ConfigurationManager.AppSettings["MailServer"], Convert.ToInt32(ConfigurationManager.AppSettings["MailServerPort"]));

 

            //Göndereceğimiz mailin hangi kullanıcı adı ve şifreyle göndereceğimizi belirliyoruz.

            client.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["MailUserName"], ConfigurationManager.AppSettings["MailPassword"]);

            mail.IsBodyHtml = true;

            client.EnableSsl = true;

            client.Send(mail);

        }

 

Yukarıdaki kod bloğunda bazı değerleri web.configten alıyoruz.

<configuration>

  <appSettings>

    <add key="MailServer" value="smtp.gmail.com"/>

    <add key="From" value="abcd@gmail.com"/>

    <add key="MailUserName" value="abcd@gmail.com"/>

    <add key="MailPassword" value="4321"/>

    <add key="MailServerPort" value="587"/>

    <add key="SiteName" value="ADNAN SAHIN"/>

  </appSettings>

</configuration>

 

 

Evet Arkadaşlar.. Bir paylaşımın daha sonuna geldik .Faydalı olması dileğiyle…

Bir sonraki makalemde görüşmek üzere…Esenle kalın.