"Enter"a basıp içeriğe geçin

C# Toplu Mail Gönderme İşlemi Nasıl Yapılır?

C# ile toplu mail gönderme işlemi nasıl yapılır, gmailden c# ile mail gönderme iznini etkinleştirme işlemi nasıl yapılır bu makalede bunu göreceğiz arkadaşlar.

Altta yapacak olduğumuz örnekte toplu olarak 250 mail göndermeyi deneyeceğiz. Şimdi bir windows form uygulaması oluşturalım. Form’a bir buton ve bir label ekleyelim.
Şimdi ‘Mail’ adında static bir sınıf oluşturalım. İçerisine alltaki kodları yazalım.
public static class Mail
{
    private static SmtpClient MailiGonderen()
    {
        SmtpClient smtp = new SmtpClient
        {
            Host = "smtp.gmail.com",
            Port = 587,
            UseDefaultCredentials = false,
            Credentials = new NetworkCredential("mailiniz", "parolanız"),
            DeliveryMethod = SmtpDeliveryMethod.Network,
            EnableSsl = true,
        };
        return smtp;
    }

    private static MailMessage MailMesaj(string baslik, string icerik)
    {
        MailMessage mailMesaj = new MailMessage
        {
            From = new MailAddress("mailiniz"),
            Subject = baslik,
            Body = icerik,
            BodyEncoding = Encoding.UTF8,
            IsBodyHtml = true
        };
        return mailMesaj;
    }

    public static string Gonder(List<string> mailler, string baslik, string icerik)
    {
        MailMessage mailMesaj = MailMesaj(baslik, icerik);
        int sayac = 0;
        foreach (var mail in mailler)
        {
            sayac++;
            if (sayac % 50 == 0)
            Thread.Sleep(3000);

            mailMesaj.To.Add(mail);
            try
            {
                MailiGonderen().Send(mailMesaj);
            }
            catch (SmtpException ex)
            {
                return sayac + ". mail gönderilirken hata oluştu!" + ex;
            }
            mailMesaj.To.Clear();
            }
            return sayac + " mail başarıyla gönderildi!";
        }
    }
}
Yukarıda oluşturmuş olduğumuz sınıfta bold tipinde belirtmiş olduğum kısımları(mailinizi ve şifrenizi) kendinize göre düzenleyin.
‘Gonder’ metodunda her 50 mail gönderildiğinde 3 saniye beklemesini söyledim, herhangi bir hata alma ihtimaline karşı.(Thread’ı kaldırıp denedim 174. mailde hata verdi.)
Şimdi form’a geliyoruz. Butona tıklandığında çalışması gereken kodları giriyoruz. Bir de”MailAdresiEkle” metod oluşturuyoruz.

private void Button1_Click(object sender, EventArgs e)
{
    List mailAdresleri = MailAdresiEkle();
    lblGonderilmeDurumu.Text = "Gönderiliyor...";
    var sonuc = Mail.Gonder(mailAdresleri, "Patkoz.com Yeni Makale Paylaştı!", "C# ile toplu mail gönderimi nasıl gerçekleştirilir? Öğrenmek için makaleye git.");
    lblGonderilmeDurumu.Text = sonuc;
}

private List MailAdresiEkle()
{
    List<string> mailAdresleri = new List<string>();
    for (int i = 0; i<250; i++)
   {
        mailAdresleri.Add("ibrhimcakal@gmail.com");
    }
    return mailAdresleri;
}

Yukarıda “MailAdresiEkle” metodu ile 250 adet mail ekledik. Siz burada veritabanından mailleri çekip bu maillere iletiyi gönderebilirsiniz. Ben burda diğer mail hesabımı 250 defa ekledim. Button1′ tıklandığında mail adreslerini listeye atıyoruz. Gonder metoduna mail adreslerini ve gönderecek olduğumuz ileti parametrelerini belirtiyoruz.(başlık ve içerik) Mail’ler başarıyla gönderildi ise başarılı mesajı, başarısız olmuşsa, kaçıncı mail’de hata alındığını ekrana yazdırıyoruz.

Kodlarımızı hazırladık program hazır fakat düzeltmemiz gereken birşey var. Program içerisinde emaili ve şifremizi belirtmiştik. Lakin bu mail hesabıyla bu programdan giriş yapabilmek için yapmamız gereken bir işlem var.

Gmailden C# İle Mail Gönderme İznini Etkinleştirme

Yazılan uygulamadan mail göndermek istediğinizde, uygulama hata verecektir. Çünkü gmail’e bir programdan gmail hesabımıza giriş yapacağımızı söylemedik. Bunun için gmail’den izni etkinleştirmemiz gerekmekte.Bu işlemi yapmak için aşağıdaki maddeleri uygulamalıyız.
1. Google hesabınızla giriş yapın.
2. https://support.google.com/accounts/answer/6010255?hl=tr adresine giderek burada izni etkinleştirdiğinizde neler olacağını anlatıyor, öğrenmek isterseniz inceleyebilirsiniz.
3. https://myaccount.google.com/lesssecureapps?pli=1 adresine gidin ve izni etkinleştirin.

C# ile toplu mail gönderimi bu şekilde arkadaşlar.Umarım işinize yarar.
İyi kodlamalar dilerim.

Yazıyı Paylaşmak İster misin?
Share on Facebook
Facebook
Pin on Pinterest
Pinterest
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Share on Tumblr
Tumblr
Share on Reddit
Reddit
    Bir cevap yazın

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