Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > ASP > Generella frågor

skicka jmail till 10000 besökare?

nabbiii
nabbiii

Gradering

#19068

Hejsan, jag har lite problem med att skicka ut mail via JMail till 10,000 besökare :S

jag får timeout error.. ja vet att jag kan sätta timeout till lite längre, men skulle vilja lösa det på något annat sätt...

hur ska jag göra, har kollat lite med merge men har inte riktigt fattat hur det funkar + att varje meddelnade jag skickar är unikt då den innehåller användarens -ID-
sen så finns inte merge-funktionen den den gratis versionen av JMail ut den finns bara med i JMail Pro, skulle vilja klara av detta med gratis versionen ;)

så ser min kod ut idag...

    mSQL = "SELECT * FROM user WHERE year(birth) >= "&Request.Form("ageTo")&" && year(birth) <="&Request.Form("ageFrom")""
       
        SET Recordset = ConnectionString.Execute(mSQL)
        Do Until Recordset.EOF
            SET JMail = Server.CreateOBject("JMail.Message")
            JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
             
            JMail.Logging = true
            JMail.silent = true

            JMail.ISOEncodeHeaders = false
            JMail.ContentTransferEncoding = "8bit"
            JMail.ContentType = "text/html"
               
            JMail.AddRecipient ""&Recordset("email")&""
           
            JMail.From         = strCompanyEmail
            JMail.Subject     = Request.Form("txtSubject")
            JMail.Body         = Replace(Request.Form("txtMeddelande"),"[USERID]",Recordset("id"))
           
            If not JMail.Send(strSMTP) Then
                Session("popup") = JMail.log
            End If   
        Recordset.Movenext
        Loop
    mDisconnect(1) Response.write("ditt meddelande har skickats!")

Redigerades av nabbiii den 10 januari 2010. Läs tidigare inlägg.
Redigerades av nabbiii den 10 januari 2010. Läs tidigare inlägg.
ID: #19068 | Skapades: 2010-01-10 14:10:12 | Tråden har 3 svar och har lästs 283 gånger.

voigtan
voigtan

Gradering

#19069

Citerar nabbiii:

jag får timeout error.. ja vet att jag kan sätta timeout till lite längre, men skulle vilja lösa det på något annat sätt...

Om man får timeout så bör man nog fundera på hur man kan lösa en batch körning eller delar upp utskickningen så att du inte behöver vänta tills 10 000+ mail är skickade. En sak du bör kolla upp med är att du inte avslutar ditt JMail objekt för varje mail som skickas, du skapar ett nytt för varje loop.

Och varför skriver du:

JMail.AddRecipient ""&Recordset("email")&""
?

JMail.AddRecipient Recordset("email")
och inget annat, om nu det alltid är ett värde på "email" i din databas.

 

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #19069 | Skapades: 2010-01-10 15:18:58

nabbiii
nabbiii

Gradering

#19072

batch körning?

dela upp utskicken?

och vad menar du med att jag inte borde avsluta jmail objekt?

ID: #19072 | Skapades: 2010-01-10 17:00:38

voigtan
voigtan

Gradering

#19073

Citerar nabbiii:
batch körning?
Ja, Om du inte vill höja timeouten så ser du ju att det inte kommer att gå, du skapade en tråd innan om jmail batch körning med att skapa upp en kö med att skicka ut mail, läs den och använd det.

Citerar nabbiii:
dela upp utskicken?
Om du inte gör en batch eller höjer timeouten så kan du inte försöka skicka 10 000 mail på en gång, du få dela upp den, skickar 200 mail åt gången eller liknande.

Citerar nabbiii:
och vad menar du med att jag inte borde avsluta jmail objekt?
Jag hoppas du skämtar med att hur man avsluta/kasta bort ett objekt, hur stänger du ett Recordset objekt? Hur stänger du ett Connection objekt? Set xxx = Nothing, annars kommer du ha referenser öppna i helt onödan.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #19073 | Skapades: 2010-01-10 17:19:07
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy