/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Sætte mails i kø
Fra : Rune Bjerregaard


Dato : 26-09-02 11:48

Hej,, har udviklet en lille applikation til at udsende mails til tilmeldte
brugere på min mailingliste, og alt virker da også fint. Indtil successen
ramte mig. Der er nu 200 tilmeldte og mit problem er at siden laver en
timeout. Jeg har ikke adgang til at ændre på opsætninger på serveren
desværre.

Jeg benytter en simpel loop hvor jeg via ASPEmail sender hver enkelt mail.
Nu har jeg så opsnuset at der findes en funktion til at sætte de afsendte
mails i kø, SendToQueue. Det lader ikke til at denne funktion er tilgængelig
dog.

Nu vil jeg så høre om der er nogen der har gode erfaringer med en anden
mail-komponent, jeg har adgang til JMail, ASPMail, ASPEmail. Eller jeg
simpelthen bruger funktionen forkert? :

Set Mail = Server.CreateObject("Persits.MailSender")
....
Mail.SendToQueue


Rune



 
 
Jesper Stocholm (26-09-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 26-09-02 11:56

Rune Bjerregaard wrote in news:amuom4$9ef3a$1@ID-151537.news.dfncis.de:

> Hej,, har udviklet en lille applikation til at udsende mails til
> tilmeldte brugere på min mailingliste, og alt virker da også fint.
> Indtil successen ramte mig. Der er nu 200 tilmeldte og mit problem er
> at siden laver en timeout.

så sætter du vel blot din timeout i vejret ?

Jeg har udviklet en dims, der sender emails ud til pt. 6000 emails via
JMail (den gratis version). Det tager ca. 1200 sekunder at sende disse
emails, så jeg har sat timeout til 2000 sekunder (for at være på den
sikre side).

Det betyder nu, at jeg kun har ét problem - nemlig at den ISA-
server/proxy som ligger udenom vores websites timer ud. Men det er ikke
noget problem i sig selv, da IIS-processen med at sende emails ud
fortsætter til scriptet er færdigt. Da jeg personligt udsender disse
emails, så sætter jeg blot scriptet i gang - og lukker derefter min
browser. Så står IIS og vores mailserver og snakker lidt(neget) sammen
indtil de er færdige et kvarters tid senere.

Min pointe er: det er ikke - som jeg kan vurdere det - decideret
_nødvendigt_ at bruge sendtoqueue() [1] eller lignende ... men det kan
være rart at have muligheden for det.

[1] I hvert fald ikke, hvis du kun skal udsende 200 emails.



--
Jesper Stocholm
http://stocholm.dk
http://asp.stocholm.dk
Svar til gruppen og ikke til mig privat pr. email :|

Lars Hoffmann (26-09-2002)
Kommentar
Fra : Lars Hoffmann


Dato : 26-09-02 12:03

"Jesper Stocholm" <jespers@stocholm.invalid> escribió

> Min pointe er: det er ikke - som jeg kan vurdere det - decideret
> _nødvendigt_ at bruge sendtoqueue() [1] eller lignende ... men det
kan
> være rart at have muligheden for det.

Enig, jeg har lavet et asp script der bruger kan sende uendeligt
mange emails ud uden at lave timeout og kun ved at bruge den gratis
version af jmail.

Scriptet er som foelgende:

<%@ Language=VBScript %>
<% option explicit%>

<% dim sendOK
dim notOK
dim reachedEnd
dim msgsPerRun

msgsPerRun = 200

reachedEnd=false

sub mailIt(theSubject,theBody)

dim offset
dim lastrec


sendOK = Request.Form("sendOk")
notOK = Request.Form("notOk")


offset = Request.Form("offset")
if offset = "" then
offset= 0
end if
lastrec=offset+msgsPerRun

dim ADOCon
dim ADORec
dim sSQL

set ADOCon = Server.CreateObject("ADODB.Connection")
set ADORec = Server.CreateObject("ADODB.Recordset")

call ADOCon.Open(connString)

sSQL="SELECT email, nombre, apellidos FROM users where baja is null
order by email"

set adorec = ADOCon.Execute(sSQL)

ADORec.Move(offset)

dim jMail

do while (not adorec.eof) and (cint(offset) < cint(lastrec))


set Jmail = Server.CreateOBject( "JMail.message" )
Jmail.silent = true
Jmail.logging = true
Jmail.ContentType = "text/html"
Jmail.mailserverusername="******"
Jmail.mailserverpassword="******"


JMail.Priority = 1
JMail.From = "webmaster@intercambiodvd.com"
JMail.FromName = "Club Intercambio DVD"

JMail.AddRecipient ADORec.fields("email"), ADORec.Fields("Nombre")
& " " & ADORec.Fields("apellidos")

JMail.Subject = theSubject
jmail.htmlbody= theBody

if Jmail.send("mail.intercambiodvd.com") then
sendOK = sendOK +1
else
notOK = notOK + 1
Response.Write("<hr><pre>" & adorec.fields("email") & "<br>" &
Jmail.log & "</pre><hr>")
end if



set jmail = nothing
ADORec.movenext
offset = offset + 1

loop

if ADORec.EOF then
reachedEnd=true
end if

response.write("number of messages sent:" & SendOK & "<br>")
response.write("number of messages Failed:" & notOK & "<br>")

adorec.close
set adorec = nothing

adocon.close
set adocon = nothing

end sub
%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>

</head>
<body >

<% if request.form.count = 0 then %>



<form name="mailing" id="mailing" method="post"
action="mailing.asp">
<input type="hidden" name="offset" value="0">
<input type="Text" id="subject" name="subject" size="120"><br>
<input type="hidden" name="sendOk" id="Mail" value="0">
<input type="hidden" name="notOk" id="Mail" value="0">
<textarea id="mail" name="mail" rows="45" cols="120"></textarea>
<br>
<input type="Submit" name="sendIt" id="sendIt" value="Send the
Email">
</form>
<% else
if trim(request.form("mail")) <> "" and
trim(request.form("subject")) <> "" then

call mailIt(request.form("subject"),request.form("mail"))
else
response.write("NO GOOD - Go Back!")
end if
%>
<form name="mailing" id="mailing" method="post"
action="mailing.asp">
<input type="hidden" name="offset"
value="<%=cint(Request.Form("offset")+msgsPerRun)%>">
<input type="hidden" id="subject" name="subject" size="120"
value="<%=Request.Form("subject")%>"><br>
<input type="hidden" name="mail" id="Mail"
value="<%=Request.Form("Mail")%>">
<input type="hidden" name="sendOk" id="Mail" value="<%=sendOk%>">
<input type="hidden" name="notOk" id="Mail" value="<%=notOk%>">

</form>
<% if reachedEnd = false then

Response.Write("<script>setTimeout('document.mailing.submit()',10)</s
cript>")
end if%>
<% end if %>


</body>
</html>






Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste