Nils Gerken: ASP Newsletter die 2.

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>

  1. 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

    1. 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

      1. Hi Uwe,

        anscheinend bist du heller als ich :-)

        Was würdest du denn ändern, leider habe ich keine Erfahrung

        Ciao Nils

        1. 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