Avatar billede Slettet bruger
19. juli 2004 - 17:23 Der er 4 kommentarer og
1 løsning

JMail timeout

Hej...

Jeg looper gennem databasen og sender efterfølgende en mail ud til mine brugere via JMail. Der er ca. 175 brugere - og mit problem er at scriptet får time out. Er der en vej omkring dette (hosten kører ikke med JMail pro - kan med andre ord ikke sætte i kø)...?!?

Koden ser ud som flg.:

<%
'--------------- HENT BRUGER DATA FRA DATABASE ---------------
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("database.mdb")

SQL = "SELECT email,brugernavn FROM brugere WHERE defaultbruger = false AND verifieduser = true"
set RS = myconn.execute(SQL)

'--------------- SEND MAIL TIL BRUGERE ---------------
countemail = 0
do until RS.eof

    email = RS("email")
    brugernavn = RS("brugernavn")

    emne = request.form("emne")
    besked = request.form("besked")
    finalbesked = Replace(besked, vbCrLf, "<br>")

    Set JMail = Server.CreateObject("JMail.SMTPMail")
      JMail.ContentType = "text/html"
    JMail.ServerAddress = "pasmtp.tele.dk"
    JMail.Sender = "fra@domæne.dk"
    JMail.Subject = "" & emne & ""
    JMail.Body = "<HTML>Hej " & brugernavn & "<br><br>" & finalbesked & "</HTML>"
   
    countemail = countemail +1
    JMail.AddRecipient email
    JMail.Execute
    JMail.clearrecipients()
    Set JMail = Nothing

RS.MoveNext
Loop
RS.Close
MyConn.Close
Set MyConn = Nothing

Response.write "E-mail sendt til " & countemail & " bruger(e)"
%>
Avatar billede para7 Nybegynder
19. juli 2004 - 17:36 #1
Prøv evt. med det her denne placering:

Server.ScriptTimeout = 6000
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.Silent = true
JMail.Logging = true
Avatar billede keysersoze Ekspert
19. juli 2004 - 17:37 #2
det _burde_ ikke tage så lang tid at sende så få mails... men sætter du

session.scripttimeout = xxx

oppe i toppen kan du forlænge den tid i xxx sekunder som din side må køre før den timer ud.

alternativt kan du i stedet for at sende 175 mails nøjes med at loope addRecipient igennem og så faktisk kun sende én mail men til mange modtagere (uden at alle modtagere kan ses af alle)
Avatar billede keysersoze Ekspert
19. juli 2004 - 17:38 #3
og ja - så hedder det server.scripttimeout og ikke session :)
Avatar billede Slettet bruger
19. juli 2004 - 17:40 #4
> keyseroze
"alternativt kan du i stedet for at sende 175 mails nøjes med at loope addRecipient igennem og så faktisk kun sende én mail men til mange modtagere (uden at alle modtagere kan ses af alle)"

Det har jeg tænkt - men troede ikke man kunne lave en "CC" el "BCC" til så mange modtagere, eller...?!
Avatar billede keysersoze Ekspert
30. juli 2004 - 12:49 #5
som udgangspunkt burde du da kunne. Dog mener jeg at jmail har nogle problemer ved x-antal mail - men det kan du finde en work-a-round om her; http://azero.dk/support/programmering/asp/komponenter/jmail/
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