Avatar billede nanna31 Praktikant
15. december 2006 - 10:21 Der er 21 kommentarer

For stor mailliste?

Jeg har lavet et script, der sender mails ud til en række brugere, men her på det sidste, er det ikke alle brugere, der har modtaget deres mails, der er 90 brugere ialt. Kan det være for mange at sende mails ud til på een gang, eller hvad kan evt. være problemet?
Avatar billede nanna31 Praktikant
15. december 2006 - 10:21 #1
Jeg har lavet et script, der sender mails ud til en række brugere, men her på det sidste, er det ikke alle brugere, der har modtaget deres mails, der er 90 brugere ialt. Kan det være for mange at sende mails ud til på een gang, eller hvad kan evt. være problemet?
Avatar billede cpufan Juniormester
15. december 2006 - 10:29 #2
sæt
<% server.scripttimeout = 360 ' (6 minutter) %>

eller endnu højere hvis det ikke er nok

det er fordi tiden udløber for scriptet, inden den har sendt til alle.
Avatar billede nanna31 Praktikant
15. december 2006 - 12:06 #3
Det lyder som en dejlig nem løsning, hvis det virker - hvor i min kode skal jeg skrive det?
Avatar billede nanna31 Praktikant
15. december 2006 - 12:09 #4
Toppen af mit script ser sådan her ud:

<% @ Language="VBScript" LCID=1030     %>
<% Option Explicit         %>
<% response.buffer=true     %>

<% Response.CacheControl = "no-cache"         %>
<% Response.AddHeader "Pragma", "no-cache"     %>
<% Response.Expires = -1             %>

Måske skal jeg bare sætte dit forslag ind umiddelbart efter?
Avatar billede cpufan Juniormester
15. december 2006 - 12:09 #5
i toppen af den side, som sørger for at sende mails
Avatar billede cpufan Juniormester
15. december 2006 - 12:10 #6
ja bare under det, det er fint
Avatar billede nanna31 Praktikant
15. december 2006 - 12:12 #7
Kan det iøvrigt passe, at jeg allerede begynder at få bøvl ved 90 brugere?
Avatar billede cpufan Juniormester
15. december 2006 - 12:14 #8
det kommer helt an på hvordan dit mailscript fungerer
Avatar billede nanna31 Praktikant
15. december 2006 - 12:33 #9
Min udbyder fortæller mig, at server.scripttimeout er fastsat på serveren til 2 minutter, så det hjælper mig ikke at prøve at forlænge den via asp.
Avatar billede nanna31 Praktikant
15. december 2006 - 12:38 #10
Sådan her ser mit script ud:

<%
Dim CONN, DSN, SQL, RS, JMail, Msg
Set CONN = Server.CreateObject("ADODB.CONNection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../db/accounts.mdb")
CONN.Open DSN

    SQL = "Select * from accounts"
   
    Set RS = CONN.Execute(SQL)
       

    dim Msg
    Msg = "hej"
       

    do while not RS.eof

            Set JMail = Server.CreateObject("JMail.SMTPMail")
        JMail.ContentType = "text/html"
        JMail.ServerAddress = "smtp.wannafind.dk"       
        JMail.Sender = "sbp72@mail.dk"
        JMail.SenderName = "Test"

        JMail.Subject = "Overskrift"
        JMail.AddRecipient RS("Email")
        JMail.HTMLBody = Msg
        JMail.Priority = 3
        JMail.Execute
        set JMail = nothing
       
        RS.MoveNext
   
    loop         

CONN.Close
Set CONN = Nothing
%>
Avatar billede cpufan Juniormester
15. december 2006 - 12:38 #11
jo det er netop det, den gør - man kan selv styre hvor længe,
ved aktivt at sætte timeout.
hvis man ikke sætter timeout til andet, bruger den automatisk serverens forudindstilling
Avatar billede nanna31 Praktikant
15. december 2006 - 12:41 #12
Serverens indstilling på 2 minutter overruler min egen, forklarer min udbyder, så det kan være ligemeget hvad jeg skriver som server.scripttimeout i min kode.
Avatar billede nanna31 Praktikant
15. december 2006 - 12:42 #13
Forstår du hvad jeg mener?
Avatar billede cpufan Juniormester
15. december 2006 - 12:42 #14
så er han ikke særlig klog,
Avatar billede cpufan Juniormester
15. december 2006 - 12:46 #15
du kan ændre dit script til:

<%
Dim CONN, DSN, SQL, RS, JMail, Msg
Set CONN = Server.CreateObject("ADODB.CONNection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../db/accounts.mdb")
CONN.Open DSN

    SQL = "Select Email from accounts"
 
    Set RS = CONN.Execute(SQL)
     

    dim Msg
    Msg = "hej"
     

 

            Set JMail = Server.CreateObject("JMail.SMTPMail")
        JMail.ContentType = "text/html"
        JMail.ServerAddress = "smtp.wannafind.dk"     
        JMail.Sender = "sbp72@mail.dk"
        JMail.SenderName = "Test"

        JMail.Subject = "Overskrift"
do while not RS.eof       
JMail.AddRecipientBCC RS("Email")
RS.MoveNext   
loop
        JMail.HTMLBody = Msg
        JMail.Priority = 2
        JMail.Execute
        set JMail = nothing
     
       
 
       

CONN.Close
Set CONN = Nothing
%>
Avatar billede nanna31 Praktikant
15. december 2006 - 13:04 #16
Så du mener ikke, at udbyderen sætter nogen begrænsning på, hvor længe mit script kan køre?

Er det ikke lidt risikabelt at køre et script i f.eks 10 minutter, hvis der skulle opstå en fejl undervejs eller whatever, så stopper processen vel?

Gælder det ikke om at undgå, at scriptet behøver at køre ret længe ad gangen?
Avatar billede nanna31 Praktikant
15. december 2006 - 13:05 #17
Min udbyder mener, at jeg enten skal sende til f.eks. 10 ad gangen eller tage en anden komponent (CDONTS) i brug - hvad mener du her?
Avatar billede cpufan Juniormester
15. december 2006 - 13:15 #18
der er ingen problemer i at den kører længe,
hvis du er bange for invalide emailadresser,
kan du skrive

on error resume next

i dit mailscript før løkken

så fortsætter den, selvom der er en fejladresse
Avatar billede nanna31 Praktikant
15. december 2006 - 13:45 #19
Ok, men du mener ikke, at udbyderen sætter nogen begrænsning på, hvor længe mit script kan køre?

JMail.Priority = 2 ?
Avatar billede nanna31 Praktikant
15. december 2006 - 15:54 #20
Jeg vil også gerne lige høre, hvad du mener om CDONTS? - så er vi ved at være der.
Avatar billede nanna31 Praktikant
15. december 2006 - 19:02 #21
JMail.AddRecipientBCC  ?  - Du er lige nødt til at forklare, hvad det er du gør her med BCC?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester