1

私は現在、古いサーバーの多くのテスト サイトを更新して、今後数か月で古いサーバーが廃止されたときに壊れないようにしています。特に 1 つのサイトの連絡フォームは既に壊れています。ユーザーが情報を入力した後に送信をクリックすると、次のエラーが表示されます。

Server object error 'ASP 0177 : 800401f3'

Server.CreateObject Failed

/contactsubmit.asp, line 79

800401f3


Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.FromName = "Web Visitor"
If request("email") <> "" then
  Mailer.replyto = request("email")
Else
  Mailer.replyto = "noEmailEntered@domain.com"
End If
Mailer.FromAddress = "my@email.com"
Mailer.RemoteHost = "hostserver"
If TempTest = TRUE then
Else
  Mailer.AddRecipient siteOwner, ContactEmail
  If ContactCC <> "" then
    Mailer.AddCC siteOwner, ContactCC
  End If
End If
If DesignerEmail <> "" then
    Mailer.AddBCC DesignerEmail, DesignerEmail
End If
Mailer.Subject = siteOwner & " Contact Form"
Mailer.ContentType = "text/html"
Mailer.BodyText = strBody
If Mailer.SendMail then
  response.redirect "contact.asp?sent=yes"
Else
  response.redirect "contact.asp?sent=no"
End If

SMTP は電子メールを送信する必要がなくなったので、すべて CDOSYS に変更してみました。しかし面白いことに、このサーバーには、同じ SMTP コードを使用してテストしたサイトが他にもたくさんあります。CDOSYS を使用した変更:

Set Mailer = Server.CreateObject("CDO.Message")
Mailer.From = "Web Visitor <my@email.com>"
If request("email") <> "" then
  Mailer.ReplyTo = request("email")
Else
  Mailer.ReplyTo = "noEmailEntered@domain.com"
End If
Mailer.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "hostserver"
If TempTest = TRUE then
Else
  Mailer.AddRecipient siteOwner, ContactEmail
  If ContactCC <> "" then
    Mailer.Cc siteOwner, ContactCC
  End If
End If
If DesignerEmail <> "" then
    Mailer.Bcc DesignerEmail, DesignerEmail
End If
Mailer.Subject = siteOwner & " Contact Form"
Mailer.HTMLBody = strBody
If Mailer.Send then
  response.redirect "contact.asp?sent=yes"
Else
  response.redirect "contact.asp?sent=no"
End If

しかし、今、私はこのエラーが発生します:

Microsoft VBScript runtime error '800a01b6'

Object doesn't support this property or method: 'Mailer.AddRecipient'

/contactsubmit.asp, line 89

私はそれをに変更しようMailer.AddとしましたMailer.AddAddressが、うまくいきませんでした。このエラーを回避し、うまくいけばこれを機能させる方法を知っている人はいますか? これまでにメール サーバーを使用したことがないため、これが簡単な修正である場合は申し訳ありませんが、過去 3 時間検索した結果、.AddRecipient.

4

2 に答える 2

1

CDO.Message オブジェクトは単に の文字列プロパティを持ち、ToこれCcBcc標準のセミコロンで区切られた smtp 電子メール アドレスのリストを割り当てます。次に例を示します。
"Joe Bloggs" <joeB@somecompany.com>; "Fred Smith" <fSmith@smiths.co.uk>

于 2012-06-23T15:18:23.767 に答える
0

CDO を使用してメールを送信する以下の最も簡単な方法を実行してから、関連するフィールドを取得してスクリプトに適用してみてください。

Set myMail=CreateObject("CDO.Message")
myMail.Subject="Sending email with CDO"
myMail.From="mymail@mydomain.com"
myMail.To="someone@somedomain.com"
myMail.TextBody="This is a message."
myMail.Send
set myMail=nothing

ご覧のとおり、受信者を追加する方法は次のとおりです。

myMail.To="someone@somedomain.com"

ここで他の例を見ることができます

お役に立てれば。

于 2012-06-24T07:43:33.873 に答える