Mailleri bölerek göndermek
Aşağıdaki kodda Kayit_Sayisi değişkeninin değerini değiştirerek bir seferde kaç mail gönderileceğini, en altaki meta refresh kodunda da content değerini değiştirerek kaç saniye aralıklarla maillerin gönderileceğini belirleyebilirsiniz.
<% ´Mailler_Conn isimli bir Connection nesnesi oluşturuyoruz.
set Mailler_Conn = server.CreateObject("ADODB.connection")
´Maillerin kayıtlı olduğu veritabanımız nerdeki
MailDBPath = Server.MapPath("maillist.mdb")
´Maillerin kayıtlı olduğu veritabanımıza bağlanıyoruz.
Mailler_Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&MailDBPath&";"
´rs isimli recordsetimizi oluşturuyoruz.
set rs = Server.CreateObject("ADODB.RecordSet")
´Maillerin kayıtlı olduğu tabloyu açıyoruz.
rs.Open "SELECT mail FROM uyeler", Mailler_Conn, 1, 3
´Bir seferde kaç kişiye birden mail gidecek belirliyoruz.
Kayit_Sayisi = 40
´Sayfamızın adı
BuSayfa = Request.ServerVariables("Script_Name")
´Gelen sayfa sayısı
GelenSayfa = Request("Sayfa")
´Sayfalama olayları
rs.PageSize = Kayit_Sayisi rs.CacheSize = Kayit_Sayisi
If GelenSayfa = "" Then Gosterilen_kayit = 1 Else Gosterilen_kayit = CInt(GelenSayfa) End If
Toplam_Kayit = rs.PageCount
If Gosterilen_kayit > Toplam_Kayit Then Gosterilen_kayit = Toplam_Kayit
If Gosterilen_kayit < 1 Then Gosterilen_kayit = 1
rs.AbsolutePage = Gosterilen_kayit
´------------------------------------------------------ ´Mail komponentinize göre mail objemizi oluşturuyoruz. Set axu = Server.Createobject("Persits.MailSender") ´SMTP Serverimiz axu.Host = "mail.benimsitem.com" ´Kimden geliyor axu.From = "admin@benimsitem.com" ´İsim axu.FromName = "Admin" ´Konu axu.Subject = "Benim siteden size mail var." ´------------------------------------------------------
i = 0 do while i < Kayit_Sayisi and Not rs.Eof
´Ve en önemli olayımız mail adreslerini ´Bcc kısmına ekliyoruz.Böylece bir seferde ´belirlediğiniz sayı kadar kişiye mail gidiyor. ´Siz bunu AddCC kısmına yada AddAddress kısmınada ´ekleyebilirsiniz. Ama ben adres satırında sadece ´bir mail adresi görünmesini istiyorum ki ´bu mail üyenize olan saygınızı gösterir.
axu.AddBcc rs("mail")
i = i + 1 rs.MoveNext Loop
´Burda mesajı göndermek istediğimiz mesajı yazıyoruz. ´Siz ordaki yazı yerine bir değişkenden de alabilirsiniz.
axu.Body = "Selam sevgi sabah"
´Html mail göndermek istemiyorsanız bunu silebilirsiniz. Yada False yapın.
axu.IsHTML = True
´Hata durumunda devam et ki geride kalanlara da mesaj ulaşsın.
On Error Resume Next
´Bitti gitti
axu.Send
´Biz katil değil webmasteriz ama öldürelim gitsin.
set axu = Nothing
´Mesajlar bittiğinde bitti diyelim olayı sona erdirelim.
if rs.eof or rs.bof Then Response.Write "Bitti" Response.End end if
´Ve en önemli olan kısım oradaki 15 saniye ´cinsinden süre. bu kısım bize döngü sağlıyor. ´15 saniyede bir sayfa kendi kemdini tazeleyecek ´ve sonra ki posta maili gönderecek. Bu sırada ´ekranda toplam kaç posta mail gideceğini ve ´sizin o anda kaçıncı postayı gönderdiğinizi görebilirsiniz. %> <meta http-equiv="refresh" content="15; url=<%=BuSayfa%>?Sayfa=<%=Gosterilen_kayit+1%>"> <center><h4><%=Gosterilen_kayit%> / <%=Toplam_Kayit%> gitti.
|