Avatar billede mvk Nybegynder
09. september 2004 - 11:16 Der er 3 kommentarer og
1 løsning

Mailscript der kun sender til 1000 modtagere af gangen

hvordan kan man ændre mit mailscript så det sender til eksempelvis 1000 brugere af gangen - så det ikke kommer noget server script timeout

kode:
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="../../Connections/scandlines.asp" -->
<%
Dim rsNyhedsbrev
Dim rsNyhedsbrev_numRows
Set rsNyhedsbrev = Server.CreateObject("ADODB.Recordset")
rsNyhedsbrev.ActiveConnection = MM_scandlines_STRING
rsNyhedsbrev.Source = "SELECT *  FROM BorderShopNyhedsbrev  ORDER BY IDnyhedsbreve DESC"
rsNyhedsbrev.CursorType = 0
rsNyhedsbrev.CursorLocation = 2
rsNyhedsbrev.LockType = 1
rsNyhedsbrev.Open()
rsNyhedsbrev_numRows = 0

    Overskrift    = (rsNyhedsbrev.Fields.Item("Overskrift").Value)
    Tekst        = (rsNyhedsbrev.Fields.Item("Tekst").Value)

Dim rsEmails
Dim rsEmails_numRows
Set rsEmails = Server.CreateObject("ADODB.Recordset")
rsEmails.ActiveConnection = MM_scandlines_STRING
rsEmails.Source = "SELECT *  FROM BorderShop"
rsEmails.CursorType = 0
rsEmails.CursorLocation = 2
rsEmails.LockType = 1
rsEmails.Open()
rsEmails_numRows = 0

  on error resume next
  Do While Not rsEmails.EOF
  strEmail = (rsEmails.Fields.Item("Email").Value)
  strNavn  = (rsEmails.Fields.Item("Fornavn").Value)
 
  Set JMail          = Server.CreateObject("JMail.SMTPMail")
  JMail.ServerAddress = "websmtp.border-wines.dk;websmtp.border-wines.dk;mailrelay.andersenit.dk"
  JMail.Sender        = "admin@border-wines.dk"
  JMail.SenderName      = "Border Shop"
  JMail.ContentType  = "text/html"
  JMail.Subject      = Overskrift
  JMail.AddRecipient    strEmail
  JMail.Priority      = 3
  JMail.AddHeader      "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
  Jmail.Body          = replace(Tekst, "ModtagerensNavn", strNavn)
 
  JMail.Execute
  Set JMail = Nothing
  rsEmails.MoveNext
  Loop

rsEmails.close
Set rsEmails = Nothing

rsNyhedsbrev.Close()
Set rsNyhedsbrev = Nothing

Response.Redirect("oversigt_nyhedsbrev.asp")
%>
Avatar billede hnteknik Novice
09. september 2004 - 21:24 #1
Har du prøvet at sætte
Server.ScriptTimeout =600
ind i koden foran og inde i loopet

IF mailnr mod 10=0 THEN
    If Response.isclientconnected()=false THEN
            Response.Write "Vi tabte forbindelsen .... "
            EXIT DO
    END IF
end if
Avatar billede hnteknik Novice
09. september 2004 - 21:30 #2
Jeg har ikke problemer med server timeout, men at flere modtagere gemmer sig bag samme firewall, som ikke tillader mere en 20 på samme session. Jeg mangler en måde, så jeg kan PAUSE længe nok til at snyde firewallen.

Hvis du har brug for at sende kun 1.000 ad gangen, så lave en tæller variabel, som du returnerer til formen, på samme møde som når du bladrer igennem et recordsæt - 20 records ad gangen. Du bruger macromedia - lav sådan en for og hug scriptet der styrer page by page.

Henrik
Avatar billede mvk Nybegynder
05. oktober 2004 - 09:39 #3
fik hjælp af anden over icq - deler den op i flere nu
tak
Avatar billede hnteknik Novice
05. oktober 2004 - 13:19 #4
Ok - men hvad var så hjælpen. Andre kunne måske have brug for en løsning på samme.
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