JMail Problem
Nils Gerken
- asp.net
Hi Geminde,
eben als ich meinen Newsletter verschicken wollte, hatte ich folgende Fehlermeldung:
jmail.SMTPMail-Fehler '8000ffff'
The message was undeliverable. All servers failed to receive the message
/admin/newssend.asp, Zeile 24
Das Cript seiht so (Die Zeile ist markiert):
<%
response.buffer = true
dim useraction,subject,comm,emails,JMail
useraction=request("action")
select case useraction
case "send"
Set Conn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.Recordset")
dsn="DBQ=" & Server.Mappath("../database/taggeckos.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
Conn.Open dsn
SQL = "SELECT emails from emails order by id"
rs.open sql,conn
do while not rs.eof
emails=rs("emails")
subject = request.form("subject")
comm = request.form("comm")
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ServerAddress = "mail.janssen-s1.de:25"
JMail.AddRecipient emails
JMail.Sender = "taggeckos@taggeckos.de"
JMail.Subject = subject
JMail.Body = comm <<<_------- Hier Hier
JMail.Execute
rs.movenext
loop
set JMail = nothing
rs.close
set rs = nothing
conn.close
set conn = nothing
response.write "<script>alert('Newsletter versendet!');"
end select
%>
comm ist der Text der über ein Textarea übergeben wird
Ich verstehe das nicht,
könnt ihe mir helfen.
Ciao Nils
Hallo Nils,
[...]
eben als ich meinen Newsletter verschicken wollte, hatte ich folgende Fehlermeldung:
jmail.SMTPMail-Fehler '8000ffff'
The message was undeliverable. All servers failed to receive the message
/admin/newssend.asp, Zeile 24
Das Cript seiht so (Die Zeile ist markiert):
[...]
JMail.Body = comm <<<_------- Hier Hier
JMail.Execute
[...]
Die fehlerverursachende Zeile ist:
»» JMail.Execute
Die Fehlermeldung besagt, dass der Mailserver nicht in der Lage ist,
die Mail zu senden. Dies könnte daher kommen, dass Du immer wieder
einen Empfänger per "JMail.AddRecipient" ohne Trennzeichen hinzufügst.
Der Server sieht dann ab dem 2.ten Schleifendurchlauf in etwa dies:
empfaenger1@domain.de empfaenger2@domain.de ...
Damit wird er wohl nichts anfangen koennen (wenn JMail wie ASPMail reagiert)
und trotz Neuinstantiierung die "alten" Empfänger behält.
Ein Tipp am Rande:
Di solltest alle Funktionen, die Du nicht innerhalb der Schleife
benötigst, vor die Schleife schreiben:
<%
...
subject = request.form("subject")
comm = request.form("comm")
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ServerAddress = "mail.janssen-s1.de:25"
JMail.Sender = "taggeckos@taggeckos.de"
JMail.Subject = subject
JMail.Body = comm
rs.open sql,conn
do while not rs.eof
emails=rs("emails")
' --- Wenn es das bei JMail gibt, alle Empfänger per
' --- JMail.ClearAllRecipients löschen.
JMail.AddRecipient emails
JMail.Execute
rs.movenext
loop
rs.Close
Set JMail = nothing
...
%>
Tschau, Stefan
Hi,
aber es hat bis jetzt immer funktioniert. Ich verstehe das nicht.
Ciao Nils
Hi
also da in der Schleife jedesmal wieder ein
Set JMail = Server.CreateObject("JMail.SMTPMail")
aufgerufen wird sollte das
set JMail = nothing
evtl. schonmal vor das loop.
Ansonsten kann ich ich nur als Tip geben :
gib ein paar Debug-Ausgeben ein , die z.B. ausgeben wie oft
die Scheleife durchlaufen wird , dabei immer die Werte von
Receipient,Subject,Body etc. ausgeben lassen um genauer
herauszufinden wo der Fehler nun auftaucht
Achja.. hab nochmal eben nen kleinen test gemacht , folgender Fehler
kam genau dann wenn ich mal eben nen Buchstaben in der Mailserver-Addresse geändert hatte :
jmail.SMTPMail-Fehler '8000ffff'
The message was undeliverable. All servers failed to receive the message
könnte es also sein das evtl. dein Mail-Server einfach down war oder so ?
gruss
Jens