Arkadaşlar,
Sizler ile kodları paylaşacağım yanlız dikkat etmeniz gereken sadece butonların içine yazılıcak alanları iyi gözlemlemek.
İlk başta yapacağımız bir olay var aslında bunlarıda şöyle sıralamamız gerekmektedir.
Aşağıda kırmızı ile renklendirdiğim alandaki kod VS2005 hata mesajı veriyor yani yüklemeniz gerekmektedir.
VS2008 içinde bu kod yüklü geliyor yeni başlayan arkadaşlara duyrulur.
Sistem başında namespace'lerimiz aşağıdaki gibi olmalıdır.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.IO;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Mail;
Şimdi aşağıdaki kod kısmını Forum Load kısmına yazdıktan sonra;
private void Form1_Load(object sender, EventArgs e)
{
MailMessage tbtMail = new MailMessage();
tbtMail.from = new MailAddress("Kendi MAilinizi Yazın");
tbtMail.To.Add("Kendi MAilinizi Yazın");
tbtMail.Bcc.Add(("Kendi MAilinizi Yazın"));
tbtMail.Attachments.Add(new Attachment(@"C:\mail_eki.txt"));
tbtMail.Subject = "TES ET KONU";
tbtMail.Body = "TES ET";
SmtpClient smtp = new SmtpClient();
smtp.Credentials = new System.Net.NetworkCredential("Kendi MAilinizi Yazın", "Şifre");
smtp.Port = 587; // bu kod gmailin port numarasıdır.
smtp.Host = "smtp.gmail.com"; // Hostumuzu buraya yazıyoruz
smtp.EnableSsl = true;
smtp.SendAsync(tbtMail, (object)tbtMail);
smtp.Send(tbtMail);
}
Forum Load kısmındaki kodları yazdıktan sonra Forum sayfamıza dönüp şunları ekliyoruz.
Evet arkadaşlar şimdi elimizdeki bu verilerle basit ama işlevsel bir toplu mail programı yazalım.Form Design alanında 6 textbox, 1 listbox,3 buton ve 1 OpenFileDialog ekliyoruz ve değişkenleri aşağıdaki gibi ayarlıyoruz.
Aşağıda yazanlar özellikler içinden buton namelerini değiştirmemiz isteniyor.
1.ci Textbox : Name = “txtSunucu”
2.ci Textbox : Name = “txtMail”
3.cü Textbox: Name = “txtParola” , PasswordChar = “*”
4.cü Textbox: Name = “txtKonu”
5.ci Textbox : Name = “txtMesaj” , Multiline = “true”
6.cı Textbox : Name = “txtPort”
7.ci TextBox : Name = “txtGad”
1 Tane Listbox : Name = “lblMail”
3 Tane Button;
1.ci Button : Name = “btnYukle”
2.ci Button : Name = “btnTemizle”
3. cü Button : Name = “btnGonder”
1 Tane OpenFileDialog : Name = “dlgDosyaYukle”
Not : Dışarıdan mail list çekeceğimiz için yani yükle fonksiyonu ile dosya işlemi yapacağımız için “System.IO” namespace’imizi eklemeyi unutmuyoruz .
Temizle butonunun loda kısmına aşağıdaki kodu yazıyoruz;
private void btnTemizle_Click(object sender, EventArgs e)
{
lbMail.Items.Clear();
}
Yükleme butonunun load kısmına aşağıdaki kodu yazıyoruz;
private void btnYukle_Click(object sender, EventArgs e)
{
try
{
dlgDosyaYukle.ShowDialog();
if (dlgDosyaYukle.FileName != "")
{
lbMail.Items.Clear();
StreamReader srRead = new StreamReader(dlgDosyaYukle.FileName);
while (srRead.EndOfStream == false)
{
lbMail.Items.Add(srRead.ReadLine().ToString());
}
srRead.Close();
}
}
catch (Exception ex)
{
MessageBox.Show("Hatalı Yükleme !\n\n" + ex.Message);
}
}
Gönder butonunun load kısmınada aşağıdaki kodu yazacağız;
private void btnGonder_Click(object sender, EventArgs e)
{
try
{
MailMessage mesaj = new MailMessage();
mesaj.from = new MailAddress(txtMail.Text, txtMesaj.Text, System.Text.Encoding.UTF8);
SmtpClient smtp = new SmtpClient();
mesaj.Subject = txtKonu.Text;
mesaj.IsBodyHtml = false;
mesaj.BodyEncoding = System.Text.Encoding.UTF8;
mesaj.Body = txtGAd.Text;
mesaj.Priority = MailPriority.High;
smtp.Credentials = new System.Net.NetworkCredential(txtMail.Text, txtParola.Text);
smtp.Port = Convert.ToInt32(txtPort.Text);
smtp.Host = txtSunucu.Text;
smtp.EnableSsl = true;
for (int i = 0; i < lbMail.Items.Count; i++) // Gönderilecek Maillerin Yüklenmesi.
{
mesaj.Bcc.Add(lbMail.Items[i].ToString());
}
smtp.Send(mesaj);
MessageBox.Show("Tüm Mailler Başarıyla Gönderildi");
}
catch (Exception ex)
{
MessageBox.Show("Mail Gönderiminde Hata oldu :\n\n" + ex.Message);
}
}
Herkeze Kolay Gelsin.Tekrar Bekleriz.