Otomatik Mail Gönderme Programı (C# - Outlook Giriş)

BorisVavilov

Marangoz
En iyi cevaplar
0
Selamlar saygılar millet, bu konuda sizlere yapmış olduğum "MailSender" isimli programımı tanıtıcam.
Bu program ile bir listenize veya birden çok mail adresine tek seferde aynı maili gönderebilirsiniz.

Programın mail gönderme zamanı mail adreslerinin çokluğuna ve internet hızınıza göre değişir, çok hızlı da atabilir çok yavaş ta atabilir. Programın tek bir kötü yanı bulunmaktadır bu da, giriş yaparken ki kullanıcağınız adres outlook veya hotmail olmalıdır yani live'ın hostundan olmalır bunun sebebi programını yaparken gmail veya başka bir hostun bilgilerini bulamamamdır fakat tüm mail adreslerine mail atabilirsiniz outlook sadece giriş için gereklidir. Giriş yaparken şifrenizin doğru olup olmadığını kontrol etmez fakat mail gönderme aşamasında tüm mail adresleri "Hatalı E-Postalar" kutusuna eklenir.

Umarım işinize yarar, yorum ve görüşlerinizi bildirirseniz sevinirim.
Not: Programda benim görmediğim çeşitli buglar olabilir, bildirebilirsiniz.

Programdan Görüntüler:

Program İndirme Linki:
Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.

Virüs Total Linki:
Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.


Kod:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MailSender
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.Text = "@hotmail.com";
        }
     
        private void button1_Click(object sender, EventArgs e)
        {
            if (!(textBox1.Text.Contains("@") || textBox1.Text.Contains(" ")))
            {
                if (textBox2.Text != "")
                {
                    MessageBox.Show("Giriş Başarılı\nDikkat: Eğer posta bilgileriniz yanlış ise program çalışmaz!", "MailSender", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    Form2 frm2 = new Form2();
                    frm2.label4.Text = textBox1.Text + comboBox1.SelectedItem.ToString();
                    frm2.label5.Text = textBox2.Text;
                    frm2.Show();
                    this.Hide();
                }
                else
                {
                    MessageBox.Show("Lütfen tüm alanları doldurunuz!", "MailSender", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            else
            {
                MessageBox.Show("Lütfen geçerli bir e-posta adresi giriniz!", "MailSender", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
     
        private void textBox2_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                if (!(textBox1.Text.Contains("@") || textBox1.Text.Contains(" ")))
                {
                    if (textBox2.Text != "")
                    {
                        MessageBox.Show("Giriş Başarılı\nDikkat: Eğer posta bilgileriniz yanlış ise program çalışmaz!", "MailSender", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        Form2 frm2 = new Form2();
                        frm2.label4.Text = textBox1.Text + comboBox1.SelectedItem.ToString();
                        frm2.label5.Text = textBox2.Text;
                        frm2.Show();
                        this.Hide();
                    }
                    else
                    {
                        MessageBox.Show("Lütfen tüm alanları doldurunuz!", "MailSender", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
                else
                {
                    MessageBox.Show("Lütfen geçerli bir e-posta adresi giriniz!", "MailSender", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
 
        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Space)
            {
                e.SuppressKeyPress = true;
            }
        }
     
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            Application.Exit();
        }

    }
}
Kod:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net.Mail;
using System.Threading;

namespace MailSender
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
            //Thread kullanma iznim için gerekli kod
            Control.CheckForIllegalCrossThreadCalls = false;
        }
      
        //Gönderme Metodunu Çalıştırmak İçin Gönder Butonuna Basma Olayı
        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox2.Text != "" && richTextBox1.Text != "")
            {
                if (!(listBox1.Items.Count < 1))
                {
                    listBox2.Items.Clear();
                    Thread th = new Thread(Gonder);
                    th.Start();
                }
                else
                {
                    MessageBox.Show("Lütfen en az 1 mail adresi ekleyiniz!", "MailSender", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            else
            {
                MessageBox.Show("Lütfen tüm alanları doldurunuz!", "MailSender", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        //Gönderme Metodu
        private void Gonder()
        {
            label6.Text = "0 / 0";
            int fns = listBox1.Items.Count;
            button1.Enabled = false;
            button2.Enabled = false;
            button4.Enabled = false;
            richTextBox1.Enabled = false;
            richTextBox2.Enabled = false;
            textBox2.Enabled = false;
            progressBar1.Maximum = fns;
            int hata = 0;
            Form1 frm1 = new Form1();
            MailMessage msg = new MailMessage();
            SmtpClient smtp = new SmtpClient();
            smtp.Credentials = new System.Net.NetworkCredential(label4.Text, label5.Text);
            smtp.Host = "smtp.live.com";
            smtp.Port = 587;
            smtp.EnableSsl = true;
            for (int i = 0; i < fns; i++)
            {
                try
                {
                    label9.Text = listBox1.Items.ToString();
                    label6.Text = i.ToString() + " / " + fns;
                    progressBar1.Value = i;
                    msg.To.Add(listBox1.Items.ToString());
                    msg.From = new MailAddress(label4.Text);
                    msg.Subject = textBox2.Text;
                    msg.Body = richTextBox1.Text;
                    smtp.Send(msg);
                    listBox3.Items.Add(listBox1.Items.ToString());

                }
                catch
                {
                    hata++;
                    listBox2.Items.Add(listBox1.Items.ToString());
                }
            }
            label6.Text = fns + " / " + fns;
            progressBar1.Value = fns;
            MessageBox.Show(hata + " Adet hatalı e-posta adresi bulundu\nDiğer tüm postalar başarı ile gönderildi!", "MailSender", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            button1.Enabled = true;
            button2.Enabled = true;
            button4.Enabled = true;
            richTextBox1.Enabled = true;
            richTextBox2.Enabled = true;
            textBox2.Enabled = true;
            label6.Text = "0 / 0";
            progressBar1.Value = 0;
            label9.Text = "E-Posta";
        }

        //Mailler Eklendikten Sonra Ekle Butonuna Basma Olayı
        private void button2_Click(object sender, EventArgs e)
        {
            if (richTextBox2.Text != "")
            {
                string mailler = richTextBox2.Text;
                string[] a = mailler.Split('\n');
                foreach (string b in a)
                {
                    listBox1.Items.Add(b);
                }
                richTextBox2.Clear();
            }
        }

        //Temizle Butonuna Basma Olayı
        private void button4_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            listBox2.Items.Clear();
            listBox3.Items.Clear();
        }

        //Bilgi Butonuna Basma Olayı
        private void button3_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Bu program Boris Vavilov tarafından yapılmıştır.\nHerhangi bir sorunda forum üzerinden ulaşabilirsiniz.\nhttps://goo.gl/3RyyUe", "MailSender", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }

        //Uygulama Kapatıldıktan Sonra Arka Planda Çalışmasını Kapatma Olayı
        private void Form2_FormClosed(object sender, FormClosedEventArgs e)
        {
            Application.Exit();
        }
    }
}


Kod Paylaşımı Hakkında Açıklama: Kod daha önceden paylaşma kararım olmadığından dolayı biraz dağınık olabilir. Açıkçası kaynak kodu paylaşmaya hiç niyetim yoktu sonuçta bu işte emek var emeğim bir kaç yazı değiştirilip başkaları tarafından etrafta yayılmaması için kaynak kodu vermek istemiyordum fakat bazı arkadaşlar kötü iftiralar atmaya kalkışmış örneğin bu bizim e-posta bilgilerimizi çalıyor programda virüs var vs. gibisinden, öncelikle benim sizden e-posta bilgilerinizi alabilmem için bi veritabanına ihtiyacım var bu veritabanına bağlanabilmek içinde MySql.Data.dll adlı kütüphaneye ihtiyacım var kaynak koddada göründüğü gibi bu kütüphaneyi kullanmıyorum ve kullansaydımda programın yanında bu dosya bulunmak zorunda olurdu bu dosyayıda siz görmüş olurdunuz. Yani bu iftiraları atan arkadaşlara inanmamanızı diliyorum umarım bu tür kişileri bu forumda görmeyiz (Pek mümkün değil) neyse kaynak kod artık sizindir saygılar sevgiler.

- Boris, csharp9
 
Son düzenleme:

Bernard

Бернард
Danışman
Geliştirici
En iyi cevaplar
61
VirüsTotal linkine .rar biçiminde değilde .exe olarak atarmısın. Program güzel olmuş tebrikler.
 

Minecraftplayerr

Java, Skript, Php, Html, Css, Javascript, Anime
En iyi cevaplar
7
Program güzel olmuş, şuanda indirip deneyemeceğim ondan dolayı soruyorum; html kodları çalışıyor mu?
 

BorisVavilov

Marangoz
En iyi cevaplar
0
Program güzel olmuş, tebrikler.
Teşekkürler.

Program güzel olmuş, şuanda indirip deneyemeceğim ondan dolayı soruyorum; html kodları çalışıyor mu?
Teşekkürler, hayır öyle bir eklenti eklemedim klasik basit bir program oldu resimlerde ne görünüyosa o yani öyle düşün.

Bravo dostum, böyle sistemleri burda görmek çok hoş :)
Ellerine sağlık, yararlı.
Teşekkürler.

Konu Güncellenmiştir - Güncelleme Raporu:
*Kaynak kod eklendi,
*Açıklama yapıldı.
 

Zamion101

Marangoz
En iyi cevaplar
0
Cok ise yarar bir program birden cok kisiye ayni epostayi cok daha hizli bir sekilde gonderebilmek gercekten cok iyi birsey. Basarilarinin devamini dilerim
 
Üst