Avatar billede terib Nybegynder
06. marts 2006 - 09:56 Der er 5 kommentarer og
1 løsning

Wrong number of arguments or invalid property assignment

Hej
Jeg er ikke asp haj, men jeg har alligevel forsøgt med et gratis aspscript der hedder EZNews.
Når jeg tilmelder en ny mailadresse for jeg følgende fejl:
Wrong number of arguments or invalid property assignment: 'AddRecipient' Bruger ASPmail.

Det kan ikke være noget med stier m.v. fordi den laver fejlen, men den tilføjer mailadressen til databasen, men den sender ikke en mail?
Hvis mailadressen er i databasen får jeg også den meddelelse i scriptet der siger at den allerede findes.
Der er et adminområde i nogle andre scripts, og der virker alt perfekt.
Håber nogen kan hjælpe.

Scriptet der laver fejlen:
<!-- #include file="CommonCode.asp"-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>EZNewsletter</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr>
    <td width="25%" valign="top">&nbsp;</td>
      <td width="50%" align="center" valign="top" style="padding:10px">
<%
    objConnOpen
  strEmail = Trim(Request("email"))
  strConfirm = Trim(Request("confirm"))


  If strConfirm = "yes" Then 'confirm the subscription
    strSQL = "UPDATE newsletter SET confirm = '"&strConfirm&"' WHERE email = '"&strEmail&"'"
    objConn.Execute strSQL
      Response.Write "<div align=""center""><br /><br />" & _
                  "<span style=""font-family:arial;font-size:12px;color:#000080;font-weight:bold;text-align:left"">" & _
                  "Success! " & strEmail & " has been confirmed!" &  _
                    "<br /><br />Thank you for subscribing to the " & strSiteTitle & " newsletter<br /><br /></span></div>"
  ElseIf strConfirm = "no" Then 'New subscriber
      strEmail = Trim(Request.Form("email"))
    Set rsNews = objConn.Execute("SELECT * FROM newsLetter WHERE email = '"&strEmail&"'")

      If Not rsNews.EOF Then
        Response.Write "<div align=""center"">Denne email adresse er allerede registreret!</div>"
      Else
      strSQL = "INSERT INTO newsletter ([email],[Date],[confirm]) VALUES('" & strEmail & "','" & Now & "','" & strConfirm & "')"
        objConn.Execute strSQL

        Set rsNews = Server.CreateObject("ADODB.Recordset")
      rsNews.Open "newsLetter", objConn, 0, 3, &H0002

        subject = strSiteTitle & " Newsletter confirmation"
      'send email so subscriber can confirm
        strEmailMsg = "Thank you for subscribing to the " & strSiteTitle & " Newsletter<br /><br />" & _
                      "Please confirm your subscription by clicking on the link below.<br /><br />" & _
                            "<a href=""http://" & strDomain & "/newsletter/common/process.asp?email=" & strEmail & "&confirm=yes"">" & _
                            "confirm</a><br /><br />" & _
                            "You received this email because you submitted this email address to our mailing list.<br />" & _
                            "If you did not subscribe or wish to be removed from our list - click on the link below<br /><br />" & _
                            "<a href=""http://" & strDomain & "/newsletter/common/process.asp?email=" & strEmail & "&cancel=yes"">" & _
                            "cancel</a><br /><br />" & _
                            "Our Thanks<br/>" & strSiteTitle

      'Send email based on mail component.

        'Send email (CDONTS version). Note: CDONTS doesn't support a reply-to
      'address and has no error checking.

            If mailComp = "CDONTS" Then
                Set mailObj = Server.CreateObject("CDONTS.NewMail")
                mailObj.BodyFormat = 0
                mailObj.MailFormat = 0
                mailObj.From = fromAddr
                mailObj.To = strEmail
                mailObj.Subject = subject
                mailObj.Body = strEmailMsg
                mailObj.Send
                Set mailObj = Nothing
            End If

            'Send email (CDOSYS version).

            If mailComp = "CDOSYS" Then
                Set cdoMessage = Server.CreateObject("CDO.Message")
                Set cdoConfig = Server.CreateObject("CDO.Configuration")
                cdoConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
                cdoConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = smtpServer
                cdoConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = fromAddr
                cdoConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "tufwfo"
                cdoConfig.Fields.Update
                Set cdoMessage.Configuration = cdoConfig
                cdoMessage.From =  "" & strSiteTitle & " <" & fromAddr & ">"
                cdoMessage.To = strEmail
                cdoMessage.Subject = subject
                cdoMessage.HtmlBody = strEmailMsg
                On Error Resume Next
                cdoMessage.Send
                If Err.Number <> 0 Then Response.Write = "Email send failed: " & Err.Description & "."
                Set cdoMessage = Nothing
                Set cdoConfig = Nothing
            End If

            'Send email (JMail version).

            If mailComp = "JMail" Then
                Set mailObj = Server.CreateObject("JMail.SMTPMail")
                mailObj.Silent = True
                mailObj.ServerAddress = smtpServer
                mailObj.Sender = fromAddr
                mailObj.SenderName = strSiteTitle
                mailObj.ReplyTo = fromAddr
                mailObj.Subject = subject
                mailObj.AddRecipient strEmail
                mailObj.ContentType = "text/html"
                mailObj.Body = strEmailMsg
                If not mailObj.Execute Then Response.Write "Email send failed: " & mailObj.ErrorMessage & "."
            End If

            'Send email (ASPMail version).

            If mailComp = "ASPMail" Then
                Set mailObj = Server.CreateObject("SMTPsvg.Mailer")
                mailObj.FromName = strSiteTitle
                mailObj.FromAddress = fromAddr
                mailObj.RemoteHost  = smtpServer
                mailObj.ReplyTo = fromAddr
                mailObj.AddRecipient strEmail
                mailObj.Subject = subject
                mailObj.ContentType = "text/html"
                mailObj.BodyText = strEmailMsg
                If Not mailObj.SendMail Then Response.Write "Email send failed: "&mailObj.Response & "."
            End If

            If mailComp = "AspEmail" Then
                Set mailObj = Server.CreateObject("Persits.MailSender")
                mailObj.Host = smtpServer
                mailObj.From = fromAddr
                mailObj.FromName = strSiteTitle
                mailObj.AddAddress strEmail
                mailObj.Subject = subject
                mailObj.Body = strEmailMsg
                mailObj.IsHTML = True

                On Error Resume Next
                SKF_MailMember.Send
                If Err <> 0 Then Response.Write "Email send failed: "&Err.Description

                Set mailObj = Nothing
            End If
            Response.Write "<div align=""center""><br /><br />" & _
                                    "<span style=""font-family:arial;font-size:12px;color:#000080;font-weight:bold;text-align:left"">" & _
                                    "An email has been sent to:<br /><br />" & strEmail & "<br /><br />" & _
                                    "Confirm your subscription by following the instructions in the email" & _
                                    "<br /><br />Thank for subscribing to the " & strSiteTitle & " Newsletter</span></div>"
        End If
        rsNews.Close
        Set rsNews = Nothing

  Else
      If Request("cancel") = "yes" Then
          strEmail = Request("email")
          Set rsNews = Server.CreateObject("ADODB.Recordset")
          strSQL = "SELECT * FROM newsLetter WHERE email = '" & strEmail & "';"
          rsNews.Open strSQL, objConn, 0, 3, &H0001

          If not rsNews.EOF Then
            rsNews.Delete
            Response.Write "<div align=""center""><br /><br />" & _
                          "<span style=""font-family:arial;font-size:12px;color:#000080;font-weight:bold;text-align:left"">" & _
                          " Success! " & strEmail & " has been removed from our database" & _
                                  "<br /><br />Sorry to see you go!</span></div>"
          End If
          rsNews.Close
          Set rsNews = Nothing
      Else
%>
<div align="center">
<br /><br />
<span style="font-family:arial;font-size:12px;color:#000080;font-weight:bold">
  Enter the email address you want removed.</span>
<br />
  <form action="process.asp" method="post">
  <input type="hidden" name="cancel" value="yes" />
    <table width="75%" align="center">
      <tr>
        <td align="center"><input type="text" name="email" size="20" /></td>
      </tr>
      <tr>
        <td align="center"><input type="submit" value="Remove" /></td>
      </tr>
    </table>
  </form>
</div>
<%
      End If
  End If
%>
      </td>
      <td width="25%" valign="top">&nbsp;</td>
    </tr>
  </table>
</body>
</html>
<% objConnClose %>
Avatar billede nielle Nybegynder
06. marts 2006 - 19:34 #1
Hvor bliver variablnen mailComp sat til noget - og hvad bliver den sat til?
Avatar billede terib Nybegynder
06. marts 2006 - 22:11 #2
Den bliver sat i et tilhørende script sådan her:
'Select your email component
  'mailComp = "CDOSYS"
  'mailComp = "CDONTS"
  'mailComp = "JMail"
  mailComp = "ASPMail"
  'mailComp = "AspEmail"
mvh
Avatar billede nielle Nybegynder
06. marts 2006 - 22:42 #3
Det tyder på at det er denne linje som fejler:

If mailComp = "ASPMail" Then
    Set mailObj = Server.CreateObject("SMTPsvg.Mailer")
    mailObj.FromName = strSiteTitle
    mailObj.FromAddress = fromAddr
    mailObj.RemoteHost  = smtpServer
    mailObj.ReplyTo = fromAddr
    mailObj.AddRecipient strEmail  ' <<<---- Denne linje
    mailObj.Subject = subject
    mailObj.ContentType = "text/html"
    mailObj.BodyText = strEmailMsg
    If Not mailObj.SendMail Then Response.Write "Email send failed: "&mailObj.Response & "."
End If

Hvad er værdien i din variabel "strEmail" lig med?
Avatar billede terib Nybegynder
07. marts 2006 - 07:16 #4
Hej,
Jeg prøvede lige at lave denne linie om fra mailObj.AddRecipient strEmail  til
mailObj.AddRecipient "", strEmail.
Så kører det!!!!!!!!!!!!
strEmail er de mailadresser der ligger i DB
Læg et svar så deler vi point så du får lidt for ulejligheden.
Mvh
Avatar billede nielle Nybegynder
07. marts 2006 - 08:16 #5
Nej tak til point på denne her. Du løste jo selv problemet. Men ellers tak for tilbudet. :^)
Avatar billede terib Nybegynder
07. marts 2006 - 13:36 #6
jamen så takker jeg for forsøget.
Mvh
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