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

BorisVavilov

Marangoz
Mesajlar
50
En iyi cevaplar
0
Beğeniler
50
Puanları
240
Ruh hali
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: https://goo.gl/tccNbb
Virüs Total Linki: https://goo.gl/VLzCM3

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

Бернард
Site Danışmanı
Geliştirici
Mesajlar
1,286
En iyi cevaplar
61
Beğeniler
2,129
Puanları
5,790
VirüsTotal linkine .rar biçiminde değilde .exe olarak atarmısın. Program güzel olmuş tebrikler.
 

Mr_Obliviate

Play.BlokDunyasi.Net
Mesajlar
1,002
En iyi cevaplar
18
Beğeniler
749
Puanları
1,480
Ruh hali
İşe yarar dostum ve C# dilini bildiğim için ne kadar emek verdiğini az çok tahmin edebiliyorum. (Layk)
 

ExS

“Alıştım artık” cümlesi çok umutsuz değil mi ya?
Mesajlar
397
En iyi cevaplar
0
Beğeniler
232
Puanları
500
Program güzel olmuş, tebrikler.
 

Minecraftplayerr

Java, Skript, Php, Html, Css, Javascript, Anime
Mesajlar
3,980
En iyi cevaplar
6
Beğeniler
3,787
Puanları
7,080
Ruh hali
Program güzel olmuş, şuanda indirip deneyemeceğim ondan dolayı soruyorum; html kodları çalışıyor mu?
 

MegaCrafter

Obsidyen Madencisi
Mesajlar
1,419
En iyi cevaplar
0
Beğeniler
1,542
Puanları
3,070
Program güzel olmuş, şuanda indirip deneyemeceğim ondan dolayı soruyorum; html kodları çalışıyor mu?
Java için konuşuyorum, html kodlarını desteklemesi için bir şey daha yapmak gerekiyodu. Ama bu arkadaş programı yaparken o şeyi yaptığına dair bir şey söylemedi. Yani yüksek ihtimalle desteklemiyordur.
 

Breakthrough

Obsidyen Madencisi
Mesajlar
1,332
En iyi cevaplar
0
Beğeniler
1,098
Puanları
2,930
Bravo dostum, böyle sistemleri burda görmek çok hoş :)
Ellerine sağlık, yararlı.
 

BorisVavilov

Marangoz
Mesajlar
50
En iyi cevaplar
0
Beğeniler
50
Puanları
240
Ruh hali
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
Mesajlar
41
En iyi cevaplar
0
Beğeniler
33
Puanları
110
Cok ise yarar bir program birden cok kisiye ayni epostayi cok daha hizli bir sekilde gonderebilmek gercekten cok iyi birsey. Basarilarinin devamini dilerim
 

Üst