Ayberk Atasay

ASP, CSS, Internet konuları üzerine paylaşımlar


C#.net mail gönderimi, toplu mail

Bir veritabanımız olduğunu varsayalım ve burada pek çok insanın maili olduğunu düşünelim. 100'lerce kişi. Bu kişileri ister siz kaydedin, ister sitenize koyacağınız newsletter tarzı birşeyle alın, bu kişilerin hepsine tek bir tıklamayla mail gönderebilirsiniz. İşte yöntemi.

Önce bir veritabanı açıyoruz. Anlatımı kolay olsun diye MS Access açıyoruz.
MS Access>yeni>boş veritabanı> tasarım görünümünde tablo oluştur dedik. Karşımıza tablomuz çıktı. "mail" yazıp türünü metin seçiyoruz. Alttaki options'lardan 50 karakterden fazlasınına ihtiyacımız yok. 50 iyi. Boş mail kayıtlarının kaydını engellemek için "boş değer"i hayır diyebilirisniz. ben demedim. (Resim.1)

Mail adresini primary key yapıp kaydedip çıkıyoruz. Tablomuza da herhangi bir isim verelim. Ben maillist diyeceğim

.net studio da bir C# ile web uygulaması seçtim.

new> website> asp.net website

bir tablo ekliyoruz (Resim.2)

default aspx in design kısmına geliyoruz sürükle bırak metoduyla bir gridview, textboxlar bir access datasource sürüklüyoruz. ve bırakıyoruz.

(Resim.3)

gridwievimizin sağ üst kutucuğundan accessdatasource 1 i seçiyoruz.

sonra access datasourcemizin sağ üst köşesindeki kutucuğa basıyoruz. databasemizin konumunu seçiyoruz (projemizin içine koyarsak kolay buluruz) sonra select sorgusundan mail i seçip devam diyoruz. işte databasemiz ve gridviewimiz doldu.

yarattığımız buttona çift tıklıyoruz ve otomatikman bir fonksiyon yaratıyor. fonksiyonun içine aşağıdakileri yapıştırıyoruz


bu arada gridwievimize ben gwmail adını verdim.
textboxlar ise txtkonu ve txtmetin.

MailMessage message = new MailMessage();
message.From = new MailAddress("emailadresiniz@mailadresiniz.com");
// for döngüsü gridviewin satır sayısı kadar dönüyor
for (int i = 0; i < Gwmail.Rows.Count; i++)
{
//gwmail Gw inin i 'inci satırının 0. elemanı mail adresi oluyor
message.To.Add(Gwmail.Rows.Cells[0].Text);
message.Subject = txtkonu.Text;
message.Body = txtmetin.Text;

System.Net.NetworkCredential mailauthentication = new System.Net.NetworkCredential("mailadresnizi@mailadresi.com", "mail şifreniz");
SmtpClient client = new SmtpClient("smtp.live.com",587);
client.EnableSsl = true;
client.UseDefaultCredentials = false;
client.Credentials = mailauthentication;
client.Send(message);
}

böylece tek metini gönderebiliyouz.
tabi message.attach() fonksiyonunu da ekleyerek attachmentli dosya gönderebiliyoruz.
inşallah iyi anlatabilmişimdir ilk yazım . msnden beni eklemek isteyenler sorusu olanlar kaygerya@hotmail.com eklemeden once davet mesajına untaka yazarsanız sizi kabuul ederim. sorularınızı belki hemen cevaplayamam ama güzel fikirler sunarsanız yapar, siteye koyarım.

ha bir de web.config dosyasının içine
<mailSettings>

<smtp from="mail@ma
iladresi.com">
<network host="smtp.live.com" port="587" userName="mailadresiniz@mailadresiniz.com" password="kendi mail şifreniz" defaultCredentials="true"/>

</smtp>
</mailSettings>

C#Mehmet Akın12 Ekim 2009, PazartesiEkle Bunu
Yorumlar
serkan
27 Şubat 2010, Cumartesi
merhaba bende toplu mail atma ile ugrasıyotrdum.bir okul sitesi yapıyorum.Orada öğretmen ve kayıt olan kişilere bilgilendirme mailleri atmak istiyorum.Gmail uzerinden tekil olarak olarak gönderdiğim kodu select komudu cekerek bir while dongusu ile datareader ile kontrol ederek gondermeye çalıstıgımda hepsi gitmiyor ve bir hata veriyor.Server mesgul olduguna dair.Sonra kayıtlı olan 130 kişinin mail adresini kendi mail adresimi yazıp denegıdımde yaklaşık 100 tane mail geliyor. ve başka bir sorun da su gunluk kota var imiş.bu sorunu nasıl aşabliriz..???

Teşekkürler
Fatih
1 Kasım 2009, Pazar
Teşekkürler
Yorum Yaz

İsim (*)

e-Posta (*) (Yayımlanmayacak)

URL




Resmi Değiştir
Güvenlik Kodu (Yukarıda gördüğünüz karakterleri yazınız)


Copyright © 2008 ayberk.com | Bu sitenin kodlaması ve teması Ayberk Atasay tarafından hazırlanmıştır. | XHTML 1.0