|
ASP:Mailleri bölerek göndermek (asp ile toplu mail gönderme) - ASP Webmaster bilgi bankası, knowledge base Webmaster Araçları
AnaSayfa > ASP > ASP:Mailleri bölerek göndermek (asp ile toplu mail gönderme) |
| Kategori | : ASP | Gönderen | : Admin | Tarih | : 2008-12-07 | Puan | : 4 | Katılımcı : 13 | Okunma | : 10333 | | | |
| | 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.
|
|