System.Net.Mail namespace'i altında yer alan SmtpClient sınıfını kullanarak mail gönderme işleminden daha önce bahsetmiştim. Bu yazıda sadece SmtpClient class'ından türettiğiniz instance'in Send(); fonksiyonunun sonucunda oluşan SendCompleted event'ini inceleyeceğiz.
Basitce bir mail gönderme uygulaması yazacak olursak;
protected void Button1_Click(object sender, EventArgs e)
{
SmtpClient smtppc = new SmtpClient("mail.alanadi.com");
smtppc.SendCompleted += new SendCompletedEventHandler(smtppc_SendCompleted);
MailAddress frommail = new MailAddress("from@alanadi.com", "From Sender Name");
MailAddress tomail = new MailAddress(to@alanadi.com);
MailMessage yenimail = new MailMessage(frommail, tomail);
yenimail.SubjectEncoding = System.Text.Encoding.GetEncoding("ISO-8859-9");
yenimail.BodyEncoding = System.Text.Encoding.GetEncoding("ISO-8859-9");
yenimail.Subject = TextBox1.Text.Trim();
yenimail.Body = TextBox2.Text.Trim();
yenimail.IsBodyHtml = false;
yenimail.Priority = MailPriority.High;
System.Net.NetworkCredential izin = new System.Net.NetworkCredential("from@alanadi.com", "password");
smtppc.UseDefaultCredentials = false;
smtppc.Credentials = izin;
smtppc.Port = 587;
try
{
smtppc.Send(yenimail);
}
catch
{
ScriptManager.RegisterStartupScript(Page, typeof(string), Guid.NewGuid().ToString(), "alert('Hata Oluştu');", true);
return;
}
}
protected void smtppc_SendCompleted(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(Page, typeof(string), Guid.NewGuid().ToString(), "alert('lletiniz gönderildi');", true);
}
Gözlemleyebildiğiniz gibi try blogu içerisinde mail gönderme işlemi başarı ile sonuçlandıktan sonra smtppc_SendCompleted event'i tetiklenecek ve bu blok içerisine yazdığınız kodlar çalışacaktır. Tek yapmanız gereken SmtpClient nesnesinden bir instance türettikten sonra SendCompleted eventini
smtppc.SendCompleted += new SendCompletedEventHandler(smtppc_SendCompleted);
şeklinde türeterek karşılık gelen ilgili fonksiyonu türetmektedir.
kolay gelsin...