SMTP Sunucusunu Kullanarak E-Posta Gönderme

Eyl 06, 2013

SMTP sunucusunu kullanarak e-posta göndermek için gerekli özellikleri içeren System.Net.Mail kütüphanesinin kullanılması gerekmektedir. Bu kütüphane aşağıdaki kod parçasının programa eklenmesiyle kullanılabilir:

using System.Net.Mail;

Bu kütüphanenin içinde MailMessage (Posta İletisi) sınıfına ait komutlar aşağıda açıklanmıştır:

  • MailMessage (Posta İletisi): Posta iletisi değişkenlerini içeren sınıftır. Posta verilerini üzerine toplar.
  • From (Kimden): Göndericinin bilgisini MailAddress (posta adresi) türünde taşır.
  • MailAddress (Posta Adresi): Posta adresi tanımlayan değişkendir.
  • To (Kime): Sınıfın alıcı listesidir. Listeye .Add (ekle) komutuyla alıcılar MailAddress (posta adresi) türünde eklenir.
  • Subject (Konu): İletinin konusunu karakter katarı olarak tutar.
  • Body (Gövde): İletinin içeriği karakter katarı olarak bu değişkene verilir.
  • IsBodyHtml (Gövdedeki Html): İletideki html kodlarının derlenmesini ve iletinin düzgün gösterilmesini sağlayan parametredir.
  • SmtpClient (Stmp İstemcisi): Posta yollanırken kullanılacak smtp sunucusunun adresi ve port numarasını tutar. Dışarıdan smtp isteklerine izin veren sunucular seçilmez ise komut hata verir.
Kullanılacak sınıfın içine posta yollamak için fonksiyon oluşturulur. Fonksiyon dışarıdan posta verilerini alacak şekilde tanımlanır:

    public void PostaYolla(string kimden, string kime, string konu, string ileti)
    {
        MailMessage posta = new MailMessage();

        posta.IsBodyHtml = true;

        posta.From = (new MailAddress(kimden));

        posta.To.Add(new MailAddress(kime));

        posta.Subject = konu;

        posta.Body = ileti;

        SmtpClient Smtpistegi = new SmtpClient("outgoing.itu.edu.tr");

        Smtpistegi.Send(posta);

    }

    protected void Button1_Click1(object sender, EventArgs e)
   {
        PostaYolla(TextBox2.Text, TextBox1.Text, TextBox3.Text, TextBox4.Text);

        lbDurum.Visible = true;
    }

.aspx oluşturulur. Bu dosya içinde iletinin kullanıcıdan alınacağı arayüz hazırlanır. Aşağıda arayüz örneğinin kodları verilmiştir:

<form id="form1" runat="server">
<div>
<table>
<tbody>
<tr>
<td>Kimden</td>
<td><asp:TextBox ID="TextBox1" runat="server" Width="400px" ></asp:TextBox>
</td>
</tr>
<tr>
<td>Kime</td>
<td><asp:TextBox ID="TextBox2" runat="server" Width="400px" ></asp:TextBox>
</td>
</tr>
<tr>
<td>Konu</td>
<td><asp:TextBox ID="TextBox3" runat="server" Width="400px" ></asp:TextBox>
</td>
</tr>
<tr>
<td valign="top">İleti</td>
<td><asp:TextBox ID="TextBox4" runat="server" Height="212px" Width="400px" ></asp:TextBox>
</td>
</tr>
</tbody>
</table>   
<asp:Button ID="Button1" runat="server" Text="Gönder" onclick="Button1_Click"/>
</div>
</form>

Proje çalıştırıldığında ilk olarak aşağıdaki gibi bir sayfa açılır:



Veriler girilerek Gönder'e tıklandığında e-posta gönderilir ve aşağıdaki sayfa gelir: