Osman KURT

Kendime Not

Asp.Net de Toplu Mail Göndermek

Bu yazımda sizlere asp.net de toplu mail göndermeyi göstereceğim. Bu kod yaptığımız projelerde lazım olabilir. Örnek vermek gerekirse sayfanız da bülten kaydı tutuyorsunuz ve kayıt olan kişilere mail gönderme ihtiyacı duydunuz. Hepsine tek tek gönderecek değilsiniz. Böyle bir işlem ile karşı karşıya kaldığınız da bu kod bloğunu kullanabilirsiniz.

Kısaca mantığını anlatmak gerekirse normal bir mail gönderme formu ve tablomuzda tutuğumuz mail listesini döngüye sokarak tek tek okutmak.

 

using System.Net.Mail;
using System.Net;
using System.Data;
using System.Data.SqlClient;
SmtpClient mailClient = new SmtpClient(server, port);
        NetworkCredential cred = new NetworkCredential(mail, sifre);
        mailClient.Credentials = cred;
        MailMessage contact = new MailMessage();
        contact.From = new MailAddress(mail);
        contact.Subject = txtkonu.Text;
        contact.IsBodyHtml = true;
        contact.Body = EditorIcerik.Content;

        SqlConnection cnn = new SqlConnection(@"yol");
        SqlCommand bulten = new SqlCommand("Select * from tabloadi", cnn);
        if (ConnectionState.Closed == cnn.State)
            cnn.Open();
        SqlDataReader bdr = bulten.ExecuteReader();
            while (bdr.Read())
            {
                contact.Bcc.Add(bdr["Mail"].ToString());
            }
        mailClient.Send(contact);
        bdr.Close();
        cnn.Close();

Proje Linki; OsmanKURT_TopluMail.rar (71,36 kb)

Kodlarımız bu kadar arkadaşlar.

Görüşmek üzere

Osman KURT

Yazılım Geliştirici ve Grafiker  | INETA K12 Speaker

Yorumlar (13) -

  • ilkay

    22.2.2012 13:47:21 | Yanıtla

    Tek Sorun Osman bey hangi using leri eklicez onları da belirtebilirseniz çok mutlu oluruz..

    • osmankurt

      23.2.2012 03:45:12 | Yanıtla

      Merhaba İlkay

      sql bağlantısı için;

      using System.Data;
      using System.Data.SqlClient;

      Mailller için;

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

      Bu dördünü eklersen sorun kalmayacaktır. Birde sana tavsiyede bulunayım. Mesela herhangi bir using satırını eklemedin hata aldın. Hata aldığın yani altı kırmızı çizgili kodun üzerine gel hemen yanında ufak bir pencere açılıyor. ona tıkladığında using satırını otomatik eklettirebilirsin.
      Başka bir yolu iste yine kodun üzerine geldikten sonra klavyeden shift + alt + f10 tuşlarına bastıktan sonra enter tuşuna basarak işlemi tamamlayabilirsin. Kolay gelsin

      • ilkay

        23.2.2012 11:35:56 | Yanıtla

        Osman bey birşey daha sorcam server port mail alanlarını nereden yazacağız ve editör içerik eklicez yapılmış halini verebilirmisiniz çalışır halde aradan incelemk istiyorum

        • osmankurt

          23.2.2012 16:12:23 | Yanıtla

          Tamam İlkay bugün değil ama yarın için hazırlayacağım yazının altına atacağım çalışır bir şekilde.

          • ilkay

            27.2.2012 09:00:44 | Yanıtla

            Merhaba Osman bey kolay gelsin...
            Yaptınız mı mail gönderme projesini....

  • ilkay

    1.3.2012 07:01:32 | Yanıtla

    Osman bey hala bekliyorum mail gönderme uygulamasını yardım edermisiniz...

    • osmankurt

      1.3.2012 13:59:36 | Yanıtla

      İlkay ekledim tek sayfalık bir yapı. access db kullandım sorun yok çalışıyor. Bilgileri yerlerine yerleştirmen yeterli olacaktır.

  • Mehmet Murat Bozkır

    26.1.2013 07:45:38 | Yanıtla

    Elinize sağlık, Benim merak ettiğim şey mailleri tek bir seferde gönderdiği için kara listeye girmezmi bu şekilde. Böyleyse başka bir çözümü mevcutmudur.

    • osmankurt

      27.1.2013 05:17:45 | Yanıtla

      Merhaba Mehmet,
      Aslına bakarsan o tamamı ile kullandığın smtp ye bağlı yani server'a. Belli kuralları vardır muhtemel onlara dikkat etmek gerekir diye düşünüyorum.

  • ayşecan

    5.6.2014 13:51:53 | Yanıtla

    Merhaba, güzrl bir yazı olmuş teşekkür ederim.
    Bir sorum olacak bu sistem aracılığı ile toplu mail  gönderimi yaparken mail marketing sistemleri gibi bülten şeklinde gönderim yapabiliyormuyuz? yada gödnerimde bu html bülteni bozar mı ?

    http://graphicmail.com.tr/mailing-nasil-yapilir

    • osmankurt

      5.6.2014 18:58:45 | Yanıtla

      Merhaba,
      Yapabilirsiniz hatta içine ne isterseniz koyabilirsiniz. Ama kullandığınız SMTP adresinde günlük gönderim sınırı olmaması lazım. Tabi birde toplu halde gönderirken belirli aralıklarla göndermek gibi ve benzeri parametreleri de göz önünde bulundurmak lazım ki blacklist'e düşmesin IP adresimiz.

  • Selçuk

    9.9.2014 17:31:59 | Yanıtla

    Osman Bey Merhaba;

    Öncelikle makale için teşekkürler. Benim sormak istediğim sistemi background worker içinde çalıştırma ve 5 dakika aralıklarla bcc olarak html gönderme şekli ile kullanıcılara iletme durumunda, kullanıcının "bu maili almak istemiorm" linki için ne yapmamız gerekir ? Yani maili toplu olarak 10 kişi şeklinde gönderdiğimiz için hangi linkin hangi mail için geldiğini nasıl anlayacağız ?

    Teşekkürler

    • osman kurt

      10.9.2014 22:04:17 | Yanıtla

      Merhaba Selçuk,
      Mail listesinden çıkmak için sadece bir textbox koyman yeterli hazırlayacağın sayfaya kişi kendi mailini eliyle yazsın çıksın listeden.

      Ya da mailleri ve gönderdiğin bütün işlemleri bir db ye kayıt edeceksin ve her mail için bir unique Id üreteceksin. Mailli gönderirken de içinde bu linki de gönderceksin ek olarak unique Id ile birlikte. Kişi linke tıklayınca anlayacaksın bu sayede kimin olduğunu.

Loading