ASP联系表单错误服务器对象错误' ASP 0177:800401f3'

时间:2015-02-26 16:58:46

标签: forms web asp-classic contact

我的一个网站联系/预订表格突然停止工作,我现在收到以下错误。

Server object error 'ASP 0177 : 800401f3' 

Server.CreateObject Failed 

/contact2.asp, line 51

我做了一些研究,似乎与经典的ASP命令有关但是 我对ASP的了解有限。

以下是完整代码: -

<%

name = request.form("name")
email = request.form("email")
phone = request.form("phone")
guests = request.form("guests")
datum2 = request.form("datum2")
info = request.form("info")
time_hour = request.form.item("time_hour")
time_minute = request.form.item("time_minute")
moda_event = request.form.item("modaEvent")
sign_up = request.form.item("signup")

If name="" or email="" Then
url = "reservations.asp?reqd=* indicates required field&name=" & mname    & "&email=" & memail
If name="" Then 
url = url & "&mname=*"
End if

If email="" Then
url = url & "&memail=*"
End if

response.redirect url & "&foobar=foobar#form"
response.end
End if


         Dim objCDONTS                 ' Email object
                 Dim strFromName               ' From persons' real name
                 Dim strFromEmail, strToEmail  ' Email addresses
                 Dim strSubject, strName, strPhone, strEmail, strGuests, strDate, strHour, strMinute, strEvent, strInfo, strSignup 'Message
                 Dim misccompo       


         strSubject    = "Reservation Form"
         strFromName   = Trim(Request.Form("name"))
         strFromEmail  = Trim(Request.Form("email"))
         strToEmail    = "reservations@modarestaurant.co.uk"
         strName       = Trim(Request.Form("name")) 
         strPhone      = Trim(Request.Form("phone"))
         strEmail  = Trim(Request.Form("email")) 
         strGuests     = Trim(Request.Form("guests")) 
         strDate       = Trim(Request.Form("datum2")) 
         strHour       = Trim(Request.Form.Item("time_hour")) 
         strMinute     = Trim(Request.Form.Item("time_minute")) 
         strEvent      = Trim(Request.Form.Item("moda_event")) 
         strInfo       = Trim(Request.Form("info"))
         strSignup = Trim(Request.Form.Item("signup"))  

Set objCDONTS = Server.CreateObject("CDONTS.NewMail")
                         objCDONTS.From    = strFromName & " <" &   strFromEmail & ">"
                         objCDONTS.To      = strToEmail
                         objCDONTS.Subject = strSubject
             objCDONTS.Body    = "--------------------------------------" & vbcrlf & vbcrlf & "Name: " & strName & vbcrlf & "Contact Number: " & strPhone & vbcrlf & "Email Address: " & strEmail & vbcrlf & "No. of Guests: " & strGuests & vbcrlf & "Date: " & strDate & vbcrlf & "Time: " & strHour & ":" & strMinute & vbcrlf & "Event: " & strEvent & vbcrlf & "Additional Info: " & vbcrlf & strInfo & vbcrlf & "Newsletter Signup: " & strSignup &vbcrlf  & "--------------------------------------------------------------" & vbcrlf & "MESSAGE ENDS: End of info"
                         objCDONTS.Send
                         Set objCDONTS = Nothing

response.redirect "thank-you.asp"
response.end
%>

第51行错误就是这一行;

Set objCDONTS = Server.CreateObject("CDONTS.NewMail")

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

错误

Server object error 'ASP 0177 : 800401f3' 

Server.CreateObject Failed 

/contact2.asp, line 51

表示无法创建对象,因为它找不到所请求对象的相应DLL。换句话说,它正在寻找NT SP4附带的CDONTS COM组件作为文件cdont.dll。 CDONTS在Windows 2000中已弃用,在Windows 2003中已完全删除。因此,如果您使用的是Window 2003,Windows 2008或Windows 2012服务器,则此错误有意义,因为DLL不存在。

要解决此问题,请尝试以下操作 - 使用CDOSYS。 CDOSYS(cdosys.dll)是作为IIS for Windows 2000,Windows 2003 Server和Windows 2008 Server的一部分提供的库文件。此DLL使应用程序能够跨多个平台路由SMTP消息,并在旧的CDONTS库上添加了更多功能。

这是一个非常简化的示例,用于对

上的一些更改进行建模
Dim Message As New CDO.Message

sch = "http://schemas.microsoft.com/cdo/configuration/"

Set cdoConfig = CreateObject("CDO.Configuration")

with cdoConfig.Fields
    .item(sch & "sendusing") = 2
    .Item(sch & "smtpserver") = "mail.xxxx.com" ' your SMTP mail server
    .Item(sch & "smtpserverport") = 2525
    .update
end with

'Create CDO message object
Set Message = CreateObject("CDO.Message")
With Message
    set .configuration = cdoConfig

    'Set email adress, subject And body
    .From = strFromName   
    .To = strToEmail    
    .Subject = strSubject    
    .TextBody = TextBody

    'Send the message
    .Send
End With