Har ett script som skickar info ur en databas till ca 50-60 adresser.
Varje mail innehåller även personlig info så varje mail är unikt.
Men nu har jag stött på patrull!
Servern orkar inte med utan skriker ScriptTimeOut efter en stund.
Har följande kod som skickar mailen
<!--#include file="db_conn.asp" -->
<%
Set useRs = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * from Users WHERE aktiv = true"
useRs.Open strSQL, strCon
useRs.MoveFirst
do while not useRs.EOF
Set pRs = Server.CreateObject("ADODB.Recordset")
strSQL2 = "SELECT [poang] from Topplista WHERE typ = 'user' and user=" & useRs("id") & "and omgang=" & omg
pRs.Open strSQL2, strCon
Set mRs = Server.CreateObject("ADODB.Recordset")
strSQL3 = "SELECT [match1], [match2], [match3], [match4], [spel_stopp] from Matcher WHERE typ = 'match' and omgang=" & omg + 1
mRs.Open strSQL3, strCon
Set mail = CreateObject("JMail.SMTPMail")
mail.sender ="tipset@sunneik.com"
mail.sendername ="SIK-Tipset"
mail.addrecipient useRs("epost")
mail.subject ="SIK-Tipset - Inför omgång " & omg + 1
mess ="<!DOCTYPE HTML PUBLIC ""-//IETF//DTD HTML//EN"">" & vbCrLf
mess = mess & "<html><body link=#000000 alink=#000000 vlink=#000000 text=#000000><font color=#000000 face=arial, helvetica>"
mess = mess & "<b>Hej " & useRs("f_namn") & " " & useRs("e_namn") & "</b><br><br>"
mess = mess & "Du hade <b>" & pRs("poang") & "</b> rätt i omgång " & omg & "<br><br>"
mess = mess & "Glöm inte att gå in och tippa nästa omgång.<br>"
mess = mess & "Matcher omgång " & omg + 1 &":<br><br><b>"
mess = mess & " " & mRs("match1") & "<br>"
mess = mess & " " & mRs("match2") & "<br>"
mess = mess & " " & mRs("match3") & "<br>"
mess = mess & " " & mRs("match4") & "</b><br><br>"
mess = mess & "Spelstopp för omgång " & omg + 1 &":<br>" & mRs("spel_stopp") & "<br>"
mess = mess & "<br>/<a href=http://www.sunneik.com><b>SIK-Tipset</b></a>"
mess = mess & "<br></font></body></html>"
mail.htmlbody = mess
mess2 = "Hej " & useRs("f_namn") & " " & useRs("e_namn") & vbCrLf & vbCrLf
mess2 = mess2 & "Du hade " & pRs("poang") & " rätt i omgång " & omg & vbCrLf & vbCrLf
mess2 = mess2 & "Glöm inte att gå in och tippa nästa omgång." & vbCrLf
mess2 = mess2 & "Matcher omgång " & omg + 1 & ":" & vbCrLf & vbCrLf
mess2 = mess2 & " " & mRs("match1") & vbCrLf
mess2 = mess2 & " " & mRs("match2") & vbCrLf
mess2 = mess2 & " " & mRs("match3") & vbCrLf
mess2 = mess2 & " " & mRs("match4") & vbCrLf & vbCrLf
mess2 = mess2 & "Spelstopp för omgång " & omg + 1 & ":" & vbCrLf & mRs("spel_stopp") & vbCrLf
mess2 = mess2 & vbCrLf & "/SIK-Tipset"
mail.body = mess2
mail.execute
Set mail = Nothing
if err.number<>0 then
response.write "<br><br><b>FEL...</b>"
end if
useRs.MoveNext
loop
response.redirect "admin_menu.asp"
%>
Vet att det finns en funktion i JMail som heter mailmerge el liknande. Kollade på http://www.dimarc.net och har även sökt på det här på forumet. Blev några träffar men inga som jag förstod till 100%.
Annars kanske det räcker med att lägga till
En liten fråga; men borde du inte ange vilken adress som skall användas, alltså till SMTP:servern? Jag hittar inte var du fått .execute-metoden ifrån, men mej veteligt använder man .send("XXX.XXX.XXX.XXX"), där alla X är ip-numret till mailservern.
RED. Execute-metoden finns inte alls i JMail, enligt vad jag ser. :)
Jo, det är mysko, för i stort sett samma script används till ett nyhetsbrev och där är det inga problem. Tänkte att det kanske berodde på att den hämtade fler saker ur db:n så att det slöade ner och timade ut.
Men jag får köra på den temporära lösningen tills vidare om ingen annan har nåt bra förslag på hur jag ska göra.