-
Üyelik
15.05.2014
-
Yaş/Cinsiyet
28 / E
-
Meslek
Programlama
-
Konum
İstanbul Avrupa
-
Ad Soyad
E** Ş**
-
Mesajlar
306
-
Beğeniler
45 / 58
-
Ticaret
5, (%100)
Merhaba Arkadaşlar;
Bir toplu mail programım var.Programım ile mail gönderimi başarılı bir şekilde oluyor fakat mail gönderimini gmail üzerinden yaptığım için 100 mail üstünde programım mailler gönderilemedi.. şeklinde hata veriyor.Bende şöyle bir çözüm yolu buldum timer kullanarak 1000 tane maili her 10 saniyede 100 tane göndererek hallederim diye düşündüm.Fakat timerı nerede ve nasıl kullanacağım hakkında hiçbir fikrim yok malesef :/
try
{
DateTime islemBaslangic = DateTime.Now;
kontrol8 = listBox1.Items.ToString();
MailMessage mail = new MailMessage();
SmtpClient client = new SmtpClient();
client.Credentials = new System.Net.NetworkCredential(textBox1.Text, textBox2.Text);
if (textBox1.Text.EndsWith("@gmail.com") == true)
{
client.Port = 587;
client.Host = "smtp.gmail.com";
}
else if (textBox1.Text.EndsWith("@gmail.com") != true)
{
client.Port = 587;
client.Host = "smtp.live.com";
}
client.EnableSsl = true;
mail.IsBodyHtml = true;
for (int i = 0; i < listBox1.Items.Count; i++) //Gönderilecek mailler
{
mail.Bcc.Add(listBox1.Items[i].ToString());
backgroundWorker2.ReportProgress(sonuc);
/* progressBar1.Value += sayac1; */
}
mail.From = new MailAddress(textBox7.Text, textBox6.Text, System.Text.Encoding.UTF8);
mail.Subject = textBox3.Text;
mail.Body = textBox4.Text;
mail.BodyEncoding = System.Text.Encoding.UTF8;
mail.Priority = MailPriority.High;
client.Send(mail);
DateTime islemBitis = DateTime.Now;
TimeSpan zaman;
zaman = islemBitis.Subtract(islemBaslangic);
toplamSN = Convert.ToInt32(zaman.TotalSeconds);
LogYazma("Mail Gönderimi Başarılı.");
}
catch (Exception ex)
{
string Hata = ex.Message;
LogYazma("Smtp Bağlantı Hatası:" + Hata + ".");
MessageBox.Show("Kullanıcı adı veya şifre yanlış lütfen kontrol edin.");
Application.Exit();
}
Başvurduğum son yer burası.Çok forum sitesine danıştım fakat bir yol bulamadım.Programımın bitmesi için gereken son şey bu.Yardım edecek olan arkadaşların şimdiden ellerine sağlık
www.oyuncumedya.com - Oyun, Haber ve Teknoloji Portalı!
-
Üyelik
25.06.2012
-
Yaş/Cinsiyet
38 / E
-
Meslek
Engineering Director
-
Konum
İstanbul Avrupa
-
Ad Soyad
T** C**
-
Mesajlar
771
-
Beğeniler
2 / 260
-
Ticaret
0, (%0)
Muhtemel mail server'larınız bedava mail servisleri tarafından black liste eklenir ve devamındada çıkan sunucu ip'sini banlarlar.
Timer tek bir Thread'den meydana gelir pek performanslı bir yöntem değildir. Bunun yerine MultiThread bir yapı mimari ile daha performanslı bir sistem inşa edilebilir.
1 kişi bu mesajı beğendi.
https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)
-
Üyelik
15.05.2014
-
Yaş/Cinsiyet
28 / E
-
Meslek
Programlama
-
Konum
İstanbul Avrupa
-
Ad Soyad
E** Ş**
-
Mesajlar
306
-
Beğeniler
45 / 58
-
Ticaret
5, (%100)
monelogg adlı üyeden alıntı
Merhaba, timer ekledikten sonra Form1_Load olayına
timer1.Interval = 1000; //Bir saniyeye denk geliyor.
kodunu ekleyin.
timer1'in tick olayının ilk satırına birer birer artan bir sayaç ekleyin.
Hemen altına da kodlarınızı yerleştirin.
Göndermek için kullandığınız kodları if koşulu arasına alın.
Mail sayısı 100'e ulaştığında duracak ve yeni bir 10 saniyelik dilime kadar bekleyecek.
((mailSayisi %100 == 0) && (zamanSayaci % 10==0))
Not: Muhtemelen bunları düşündünüz ve dediklerime benzer şeyler yaptınız, kodlar üzerinde değişiklik yapmaya çalıştım fakat muhtemelen çalışmayacağı için bu şekilde yazayım dedim.
Belki bu bağlantı bir fikir verebilir:
http://www.tportal.org/cta-timer-nesnesi-kullanimi/
Gerek kalmadı hocam ama yinede düşünüp yazdığınız için teşekkür ederim. Thread.Sleep(10000); kodunu ve bir if kullanarak 10 saniye bekletmeyi başardım.
Turgay Can adlı üyeden alıntı
Muhtemel mail server'larınız bedava mail servisleri tarafından black liste eklenir ve devamındada çıkan sunucu ip'sini banlarlar.
Timer tek bir Thread'den meydana gelir pek performanslı bir yöntem değildir. Bunun yerine MultiThread bir yapı mimari ile daha performanslı bir sistem inşa edilebilir.
Hocam herhangi bir sunucum yok.Mail göndermek için gmail sunucularını kullanıyorum fakar bugün bu sorunu hallettikten sonra gmail hesaplarının belli bir mail gönderme limiti olduğunu farkettim. Yinede teşekkür ederim hocam benim için düşündünüz yazdınız.
www.oyuncumedya.com - Oyun, Haber ve Teknoloji Portalı!
VoyL
WM Aracı
Kullanıcı
-
Üyelik
17.03.2013
-
Yaş/Cinsiyet
33 / E
-
Meslek
Öğrenci
-
Konum
İstanbul Avrupa
-
Ad Soyad
Ö** Ç**
-
Mesajlar
133
-
Beğeniler
0 / 23
-
Ticaret
0, (%0)
gmailin normal kullanıcılar için günlük gönderme limiti var, performanslı olmaz hiçbir zaman hocam.
-
Üyelik
15.05.2014
-
Yaş/Cinsiyet
28 / E
-
Meslek
Programlama
-
Konum
İstanbul Avrupa
-
Ad Soyad
E** Ş**
-
Mesajlar
306
-
Beğeniler
45 / 58
-
Ticaret
5, (%100)
VoyL adlı üyeden alıntı
gmailin normal kullanıcılar için günlük gönderme limiti var, performanslı olmaz hiçbir zaman hocam.
Hotmailin var mı peki hocam ? veya diğer sitelerin ?
www.oyuncumedya.com - Oyun, Haber ve Teknoloji Portalı!
VoyL
WM Aracı
Kullanıcı
-
Üyelik
17.03.2013
-
Yaş/Cinsiyet
33 / E
-
Meslek
Öğrenci
-
Konum
İstanbul Avrupa
-
Ad Soyad
Ö** Ç**
-
Mesajlar
133
-
Beğeniler
0 / 23
-
Ticaret
0, (%0)
ücretsiz tüm servis sağlayıcıların bir sınırı vardır hocam.
-
Üyelik
15.05.2014
-
Yaş/Cinsiyet
28 / E
-
Meslek
Programlama
-
Konum
İstanbul Avrupa
-
Ad Soyad
E** Ş**
-
Mesajlar
306
-
Beğeniler
45 / 58
-
Ticaret
5, (%100)
Evet hocam bugün bunuda anlamış oldum.Yandexte bir tek sınır yoktu oda belli bir mail sayısından sonra güvenlik kodu girilmesini istiyor.
www.oyuncumedya.com - Oyun, Haber ve Teknoloji Portalı!