Avatar billede cypherdenmark Nybegynder
24. februar 2003 - 20:24 Der er 10 kommentarer og
1 løsning

Jmail - Hvorfor smides hver 22 mail væk ?

Hey Alle

Jeg er ved at lave en mailliste til mit site, men min udbyder Azero nævner noget om at hver 22 mail smides væk når der sendes mail ud. (se nedestående)

//  Taget fra Azero.dk

JMail smider hver 22-ende e-mail væk, hvorfor?

Når du sender e-mails fra hjemmesider via websmtp.dit-domaene.dk og JMail skal du huske at lukke din connection, minimum efter hver tyvende e-mail. Gør du ikke dette vil hver 22-ende e-mail i en løkke, ikke blive sendt. Herunder er et eksempel på en løkke, der laver en JMail.Close for hver 20-ende e-mail:

For i = 1 to intCount
  If Not JMail.Execute Then
    Response.Write("ERROR MESSAGE: " & JMail.ErrorMessage & "<br>" & vbCrLf)
    Response.Write("ERROR SOURCE: " & JMail.ErrorSource & "<br>" & vbCrLf)
    Response.Write("LOG: <pre>" & JMail.Log & "</pre>" & vbCrLf)
  End If
  If CInt(i/20) = i/20 Then JMail.Close
Next


Hvorledes kan ovenstående flettes ind i min kode så den tager højde for det.

// maillist.asp

<%
SQL = "SELECT * FROM maillist;"
Set rs = Conn.Execute(SQL)
Do While Not rs.eof

Set Mail = Server.CreateObject("JMail.SMTPMail")
Mail.ServerAddress = "websmtp.domæne.dk"
Mail.Subject = "Nyhedsbrev"
Mail.AddRecipient rs("email")
Mail.Sender = "domæne@donæne.dk"
Mail.Body = Request.Form("msgbody")

Mail.Execute
rs.movenext
Loop
%>

På forhånd tak....... :-)
Avatar billede medions Nybegynder
24. februar 2003 - 20:46 #1
Det er fordi du skal bruge SpeedMail i stedet for fra JMail af! -prøv at læs på deres site, der beskriver de hvordan du laver en Mailingliste!

//>Rune
Avatar billede cypherdenmark Nybegynder
24. februar 2003 - 21:44 #2
Jamen det er udenmærket men kan det ikke løses men ovenstående kode da jeg ikke ønsker ekstra udgifter med domænet (SpeedMail/Mailliste koster nemlig penge)
Avatar billede medions Nybegynder
24. februar 2003 - 21:46 #3
Hmm ik' efter hvad jeg ved... (har ikke prøvet andet)

//>Rune
Avatar billede goose Nybegynder
24. februar 2003 - 22:20 #4
Du indsætter blot:
set mail=nothing
imellem mail.execute og rs.movenext, altså:
<%
SQL = "SELECT * FROM maillist;"
Set rs = Conn.Execute(SQL)
Do While Not rs.eof

Set Mail = Server.CreateObject("JMail.SMTPMail")
Mail.ServerAddress = "websmtp.domæne.dk"
Mail.Subject = "Nyhedsbrev"
Mail.AddRecipient rs("email")
Mail.Sender = "domæne@donæne.dk"
Mail.Body = Request.Form("msgbody")

Mail.Execute
Set mail = nothing
rs.movenext
Loop
%>
- på denne måde lukker du jmail efter hver mail og dermed undgår du problemet, jeg bruger det selv og det virker udemærket.

/Goose
Avatar billede cypherdenmark Nybegynder
24. februar 2003 - 22:34 #5
Ok alletiders...........

Men når man nu lukker forbindelsen hver gang må det da tage lang tid at sende mange mail. Skal man så tage højde for noget timeout i sin kode eller hva ??
Avatar billede cypherdenmark Nybegynder
24. februar 2003 - 22:46 #6
Eller ville det være smart at istedet for Mail.AddRecipient rs("email") og så bruge Mail.AddRecipientBcc rs("email") Så serveren ikke belastes ?

Håber i kan svare på mine spg. Da jeg er ny i Jmail

På forhånd Tak ;-)
Avatar billede goose Nybegynder
25. februar 2003 - 08:32 #7
At det skulle tage længere tid er ikke noget du kan mærke, det tager i forvejen lang tid afhængigt af hvor mange mails der skal sendes, så jeg vil da råde dig til at sætte en script timeout på 6000 eller sådan noget lign.
Om det ville være en fordel at sende som BCC skal jeg ikke kunne sige, det er bare ikke særlig smart hvis du f.eks. har et link til automatisk afmelding af nyhedsbrevet, så vil alle jo modtage det samme link hvis du forstå hvad jeg mener :o)

/Goose
Avatar billede cypherdenmark Nybegynder
25. februar 2003 - 10:18 #8
Ok.......Lige et sidste spg....

Hvor skal Script Timeout sættes og hvordan ser syntaks ud.....??
Avatar billede goose Nybegynder
25. februar 2003 - 10:27 #9
Syntaksen er: Server.ScriptTimeout = 6000 og indsættes i dit kald således:

<%
Server.ScriptTimeout = 6000
SQL = "SELECT * FROM maillist;"
Set rs = Conn.Execute(SQL)
Do While Not rs.eof

Set Mail = Server.CreateObject("JMail.SMTPMail")
Mail.ServerAddress = "websmtp.domæne.dk"
Mail.Subject = "Nyhedsbrev"
Mail.AddRecipient rs("email")
Mail.Sender = "domæne@donæne.dk"
Mail.Body = Request.Form("msgbody")

Mail.Execute
Set mail = nothing
rs.movenext
Loop
%>

/Goose
Avatar billede cypherdenmark Nybegynder
25. februar 2003 - 11:21 #10
Hey Goose.......jeg takker for din hjælp....
Avatar billede goose Nybegynder
25. februar 2003 - 11:22 #11
Det var så lidt, thx for point.

/Goose
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