ASP Newsletter die 2.
Nils Gerken
- asp.net
0 Nils Gerken0 Uwe Nohl0 Nils Gerken0 Uwe Nohl
Hi,
Ich verstehe nicht, was ich in dem Script Falsch gemacht habe,
es gibt folgende Fehlermeldung:
jmail.SMTPMail-Fehler '8000ffff'
No recipients
/asp/send.asp, Zeile 24
Was bedeutet das??
Hier das Script:
<%
response.buffer = true
dim useraction,subject,comm,emails
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/subs.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")
Dim JMail
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ServerAddress = "mail.janssen-s1.de:25"
JMail.ReplyTo = emails
JMail.Sender = "taggeckos@taggeckos.de"
JMail.Subject = subject
JMail.Body = comm
JMail.Execute()
rs.movenext
loop
set JMail = nothing
rs.close
set rs = nothing
conn.close
set conn = nothing
response.write "<script>alert('has been sent!');"
response.write "location.href='index.asp'</script>"
end select
%>
<html>
<head>
<title>Untitled</title>
</head>
<body>
<form action="send.asp?action=send" method="post">
<table><tr><td>
Subject:</td><td><input type="text" name="subject" size=20 maxlength=30></tr></td>
<tr><td>
message:</td><td><textarea cols=20 rows=8 name="comm"></textarea></tr></td>
<tr><td colspan=2><input type=submit name=submit>
</form>
</table>
</body>
</html>
Hilfe, Hilfe:
Ich habe den Befehl ReplyTo durch den Befehl Recipients ersetzt, allerdings kommt jetzt diese Fehlermeldung:
Laufzeitfehler in Microsoft VBScript-Fehler '800a01c2'
Falsche Anzahl an Argumenten oder ungültige Eigenschaftszuweisung: 'Recipients'
/asp/send.asp, Zeile 19
Die Zeile lautet JMail.Reciepients = emails
emails wird so aus einer DAtenbank definiert:
Set Conn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.Recordset")
dsn="DBQ=" & Server.Mappath("../database/subs.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")
Was mache ich falsch???
Ciao Nils
Hilfe, Hilfe:
Ich habe den Befehl ReplyTo durch den Befehl Recipients ersetzt, allerdings kommt jetzt diese Fehlermeldung:
Laufzeitfehler in Microsoft VBScript-Fehler '800a01c2'
Falsche Anzahl an Argumenten oder ungültige Eigenschaftszuweisung: 'Recipients'
--> JMail.Reciepients = emails
Hallo Nils
habe Deinen Code überflogen, ich nehme an, JMail.Recipients ist eine Collection. Mir ist folgendes aufgefallen:
Conn.Open dsn
SQL = "SELECT emails from emails order by id"
»» rs.open sql,conn
--->
»» do while not rs.eof
emails=rs("emails")
<---- hier wird der Variablen emails beim Durchlauf duch das Datenobjekt ständig ein einziger und ständig neuer Wert zugewiesen.
Wie verträgt sich das mit der Collection (s.o.)?
Was mache ich falsch???
Könnte es das sein? Bin auch nicht so firm.
Gruss
Uwe Nohl
Hi Uwe,
anscheinend bist du heller als ich :-)
Was würdest du denn ändern, leider habe ich keine Erfahrung
Ciao Nils
Hi Uwe,
anscheinend bist du heller als ich :-)
Hallo Nils,
ob das stimmt, weiss ich nicht ...
Was würdest du denn ändern, leider habe ich keine Erfahrung
vielleicht hilft hier ein array
'Deklaration:
Dim arr_email(), i
'im Programm:
arr_email = rs.GetRows()
'wenn das array 2-dimensional ist
For i = 0 To Ubound(arr_email, 2)
Jmail.Recipients(i) = arr_email(0,i)
' wenn 'emails' das 0. (=1., die VBScript-arrays sind per default 0-'based) Feld ist, ansonsten gilt der richtige Wert)
Next
Kann leider im Moment nicht mehr dazu beisteuern
Gruss
Uwe Nohl
ob das stimmt, weiss ich nicht ... Was