Avatar billede pollas Nybegynder
02. september 2002 - 13:58 Der er 2 kommentarer og
1 løsning

Jmail-nyhedsbrev går i sort

Jeg har ca. 600 tilmeldte i en Accessbase og har vha. Jmail lavet en mailer. Problemet er, at den timer ud - selvom jeg har sat timeout til ret meget. Hvor går det galt? Jmail, mailserveren (hostet hos Azero), koden? Synes at have hørt om Bulk-mailing, hvor mailen 'samles op' af mailserveren - men kræver det ikke adgang til andet end et alm. webhotel kan klare?

Hvad gør I andre, når I laver nyhedsbreve? Og hvor meget kan de klare?

Håber på lidt input - på forhånd tak!


Koden er som følger (jeg har sakset irrelevante/html-ting ud):

Server.ScriptTimeOut = 800
Response.Buffer = True

  strSubject = Request.Form("Emne")
  strMessage = Request.Form("Besked")

  conn.open strDSN

  strSQL = "SELECT Email FROM mailinglist"
  Set rs = conn.Execute(strSQL)
  arrEmail = rs.GetRows()
  conn.Close
  set conn = Nothing
 
    Response.Write "<p><font face=arial size=2><b>Udsender...</b><br><br>"
    Set objMail = Server.CreateObject("JMail.SMTPMail")
    objMail.Silent = True
    objMail.ServerAddress = "smtp.andersenit.dk"
    objMail.Sender = "afsender.dk" 'censur :)
    objMail.SenderName = "Afsender" 'censur :)
    objMail.Subject = strSubject
    objMail.Body = strMessage
    For num = 0 to Ubound(arrEmail,2)
      objMail.AddRecipient arrEmail(0, num)
      If objMail.Execute Then
        Response.Write "<font color=green>" & arrEmail(0, num) & " (" & num & ") OK</font><br>"
      Else
        Response.Write "<font color=red>" & arrEmail(0, num) & " (" & num & ") FEJL</font><br>"
      End If
      objMail.ClearRecipients
    Next
    Set objMail = Nothing
 
  Response.Write "<br><font color=black><b>Nyhedsbrevet er nu udsendt!</b></font></font></p>"
  Response.End
Avatar billede whatever Nybegynder
02. september 2002 - 14:08 #1
Jeg ville nok foreslå at istedet for, at eksekvere objektet en gang for hver tilmeldt e-mailadresse. Nøjes du med en gang, det belaster ikke webserveren og mailserveren så meget.
Så brug objMail.AddRecipientBCC("someone@somedomain.net") istedet for objMail.AddRecipient("someone@somedomain.net").

Det vil nok hjælpe på dit problem.
Avatar billede pollas Nybegynder
02. september 2002 - 14:14 #2
Har tidligere brug tricket, men problemet opstår, når man vil have forskellige mails ud. I det her tilfælde burde det dog kunne fungere med BCC - men hvor maget 'sparer' man serveren? Skal den ikke loope temmelig meget igennem anyway?
Avatar billede whatever Nybegynder
02. september 2002 - 14:21 #3
Den skal kun loope igennem arrayen, for at tilføje e-mailadresserne til objMail.AddRecipientBCC. Og ikke eksekvere scriptet 600 gange. Istedet for at sende en e-mail med 600 modtagere til mailserveren, sender dit script 600 mails til serveren med 1 modtager i hver. Det må være klart hurtigere kun at sende en mail.

Jeg kender godt problemet med individuelle mails. F.eks. en link som direkte afmelder brugeren fra listen.

Du får selvfølgelig ikke din farvede log med, når du sender alle på en gang. Istedet kan du slå logging til med objMail.logging = true, og så udskrive objMail.log.
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