Asp.Net Mail Gönderme

Posted by

Merhaba Dostlar , uzun uğraşlar sonucunda mail gönderme işlemini başarılı bir şekilde gönderebildim nihayet. Hiçbir yerde doğru düzgün bir mail gönderme uygulaması yapılmamış. Baktığım sitelerdeki kodlar genellikle hata verdi. Çalışmıyordu. Şimdi Asp.Net Mail Gönderme kodunu paylaşmak istiyorum.İşinize yaracağını düşünerekten…

SMTP üzerinden email yollamak için aşağıdaki kod bloğu işinizi görecektir…

Asp.Net Mail Gönderme işlemi aşağıdaki gibi yapılabilir.

Öncelikle System.Net ve  kütüphanelerini eklemelisiniz.

using System.Net;
using System.Net.Mail;

Daha sonra bir MailMessage nesnesi oluşturuyoruz, mail bilgilerimizin tutulacağı.

msg.Subject ile mailimizin konusunu belirtiyoruz.

msg.From ile mailin hangi hesap ile gönderileceğini belirliyoruz.

msg.To.Add() ile hangi bu mailin hangi hesaba gönderileceğini belirliyoruz.

msg.Body ile mailimizin içeriğini, mesajımızı belirliyoruz.

Eğer html bir kod kullandıysak mailimizin içeriğinde html kodlarının çalışması için msg.IsBodyHtml özelliğini true olarak ayarlıyoruz.

msg.Priority ile mailimizin önem derecesini belirtiyoruz. (Yüksek, Normal, Düşük gibi…)

Daha sonra SmtpClient nesnemizi oluşturuyoruz. Bununla sunucu adresimizi ve portumuzu belirtiyoruz ve gönderme işlemini bununla yapacağız.

NetworkCredential nesnesi oluşturuyoruz. Bu nesne ile de mail gönderdiğimiz hesabın adresini ve şifresini belirliyoruz. Sonuçta bir doğrulama yapmamız gerekiyor. Diğer işlemlerden sonra da son olarak smpt.Send() metodu ile de gönderimi sağlıyoruz. Mailimiz başarılı bir şekilde gönderimi sağlanırsa gönderim başarılı şeklinde mesaj verdirebiliriz. Bu kodlarımızı da try catch bloğu içinde yazarsak, mail herhangi bir nedenden dolayı başarısız olursa hata oluştu mesajı verdirip kullanıcıyı bilgilendirebiliriz.


MailMessage msg = new MailMessage();
msg.Subject = "Asp.Net Send Mail";
msg.From = new MailAddress("Gönderen Mail Adresi", "Görünen Ad");
msg.To.Add(new MailAddress("Gönderilecek Mail Adresi", "Görünen Ad"));
msg.Body = "Mesajınız... <br>" + msg.From.Address;
msg.IsBodyHtml = true;
msg.Priority = MailPriority.High;
// Host ve Port Gereklidir!
SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
// Güvenli bağlantı gerektiğinden kullanıcı adı ve şifrenizi giriniz.
NetworkCredential AccountInfo = new NetworkCredential("GMail Adresiniz", "Şifreniz");
smtp.UseDefaultCredentials = false;
smtp.Credentials = AccountInfo;
smtp.EnableSsl = true;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.Send(msg);

Asp.net mail gönderme işlemi Güvenli bağlantı üzerinden böyle yapılabilir.

Umarım işinizi görmüştür…

4 comments

  1. msg.To.Add(“mailadresi”) direk bu kodumu döngüye sokacagız yoksa msg.To.Add(“mailadresi,mail adresi2,mailadresi3…”) vs şeklindemi bilmediğimden soruyorum hocam
    ek olarak döngüye c# tarafında nasıl sokabiliyoruz asp.net tarafında asp:repeater ile c# aracılıgıyla sokabiliyoruz ama c# tarafında bi kodu döngüye hiç sokmadım örnek paylaşmanız mümkünmü rica etsem?

    1. Merhaba,
      msg.To.Add(“test_mail_adresi_1”);
      msg.To.Add(“test_mail_adresi_2”);

      şeklinde de yazabilirsin ya da

      List mailAdresleri = new List() {“test_mail_adresi_1″,”test_mail_adresi_2”}

      foreach(string mail in mailAdresleri)
      {
      msg.To.Add(mail);
      }

      şeklinde yazarak döngü ile de To adreslerinin eklenmesini sağlayabilirsiniz.

    1. Merhaba, msg.To.Add(“mailadresi”) şeklinde kullanarak bu kodu birden fazla yazarak ya da bir listeden aldıktan sonra döngü ile bu kodu çalıştırarak e-mail adresi eklemesi gerçekleştirebilirsin.

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir