我目前正在更新旧服务器上的许多测试站点,以便在旧服务器在接下来的几个月中停止时它们不会中断。特别是一个站点的联系表格已经打破。当用户在填写信息后点击提交时,会出现以下错误:
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
的替代品。
答案 0 :(得分:1)
CDO.Message对象只具有To
,Cc
和Bcc
的字符串属性,您可以为其分配标准的以分号分隔的smtp电子邮件地址列表,例如:<登记/>
"Joe Bloggs" <joeB@somecompany.com>; "Fred Smith" <fSmith@smiths.co.uk>
答案 1 :(得分: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"
您可以看到更多示例here
希望这有帮助。