Avatar billede colman Nybegynder
05. august 2002 - 11:39 Der er 7 kommentarer og
1 løsning

Batch mail ???

Jeg har en mailing liste der fungere godt vha. JMail. Problemet er når det er MANGE i databasen (over 100)...

Når jeg sender mailen og den så skal igennem ALLE dem i databasen så går det vildt lang tid hvorefter jeg får en meddelelse om at scriptet er timed out...

Hvad gør jeg ?? Jeg har hørt noget med at man kan lave en Batch mail ?? Hvad er den bedste/nemmeste løsning...det haster !!
Avatar billede orca Nybegynder
05. august 2002 - 11:41 #1
Der er en funktion i JMail pro versionen som gør at du kan lagre beskeder i serverens midlertidige udbakke eller sådan noget, men der findes en anden lidt lettere løsning.

På siden du er i skal du sende de første 20 mails, og så redirecte videre til den samme side igen, med en variabel som siger at du skal sende de 20 næste mails. På samme måde redirecter du til samme side igen og sender de næste 20 mails osv osv osv. Så på den måde sender du 20 mails ad gangen, og skulle gerne undgå problemerne.

Mvh Mark
Avatar billede steen Nybegynder
05. august 2002 - 11:44 #2
Hvis indholdet er nøjagtigt ens i alle mails'ne kan du benytte nedenstående:

Saml alle emails i én streng ala. sdsd@erd.dk; erer@dfdgf.ej; ...

Send den som BCC. så kan de ikke se hinandes emailadresser, og det er ikke længere din webserver der skal knokle, men i stedet mailservere...
Avatar billede colman Nybegynder
05. august 2002 - 11:50 #3
steen -> din løsning lydes mest spænnende. Kan du/i evt. hjælpe mig en smule med koden ??

<%
set msgTemplate = Server.CreateObject("JMail.Message")
msgTemplate.Subject = Request.Form("header")
msgTemplate.Body = "Kære %%name%%" & vbcrlf& vbcrlf & replace(request.form("tekst"),"'","&acute;")

msgTemplate.From = "xx@xx.dk"
msgTemplate.FromName = "Nyhedsbrev fra xx"
msgTemplate.AddRecipient "%%email%%", "%%name%%"

set mMerge = Server.CreateObject( "JMail.MailMerge")
mMerge.MailTemplate = msgTemplate

Set Conn = Server.CreateObject("ADODB.Connection")
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("mail_list.mdb")
conn.open strDSN
Set MyRS = Conn.execute("SELECT name, email FROM mail WHERE modtaget='0'")
MMerge.BulkMerge myRS, false, "mail.xx.dk"
conn.execute("update mail set modtaget='1' where modtaget='0'")
Response.redirect "kontact.asp"
%>

Dette er min nuværende kode :)
Avatar billede steen Nybegynder
05. august 2002 - 11:58 #4
Jeg kender ikke JMail, Men det du skal gøre er bare at loope dit recordset igennem

Set Conn = Server.CreateObject("ADODB.Connection")
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("mail_list.mdb")
conn.open strDSN
Set MyRS = Conn.execute("SELECT email FROM mail")


Do while not MyRS.EOF
strMailliste = strMailliste & MyRS("email") & "; "
Loop


Når du har gjort dette sætter du din modtager (BCC) = strMailliste og eksekverer den!

/Steen
Avatar billede colman Nybegynder
05. august 2002 - 12:09 #5
Hmmmm jeg er ikke nogen haj til ASP så enhver form for hjælp er meget velkommen .....
Avatar billede colman Nybegynder
05. august 2002 - 17:00 #6
Jeg bliver nødt til at fordele pointene ud da jeg fand en helt anden løsning. Jeg satte server timeout tiden op til 40 min :)...... simpel funsker løsning hehe....
Avatar billede colman Nybegynder
05. august 2002 - 17:01 #7
hov !!!! Kom til at give steen alle point !! Sorry Orca :(
Avatar billede orca Nybegynder
05. august 2002 - 17:44 #8
Det gør såmænd ikke noget :)
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