我被要求将此问题更新为最新的代码和错误。我现在没有收到任何错误,但表单中的信息仍未发送到电子邮件。 asp与表单在同一页面上:
asp代码:
<!--METADATA TYPE="typelib" UUID="CD000000-8B95-11D1-82DB-00C04FB1625D" NAME="CDO for Windows Library" -->
<!--METADATA TYPE="typelib" UUID="00000205-0000-0010-8000-00AA006D2EA4" NAME="ADODB Type Library" -->
<%
sectionID=8
frmName = request.Form("frmName")
frmEmail = request.Form("frmEmail")
frmPhone = request.Form("frmPhone")
frmAddress = request.Form("frmAddress")
frmReferral = request.Form("frmReferral")
frmCallback = request.Form("frmCallback")
frmEnquiry = request.Form("frmEnquiry")
if len(frmName) = 0 then
errormessage = "<p><b style=""color: red"">Name field left blank.</b></p>"
elseif len(frmEmail) = 0 then
errormessage = "<p><b style=""color: red"">E-mail field left blank.</b></p>"
elseif len(frmPhone) = 0 then
errormessage = "<p><b style=""color: red"">Phone field left blank.</b></p>"
end if
if request.TotalBytes <> 0 and len(errormessage) = 0 then
if len(frmReferral) = 0 then frmReferral = "(left blank)" end if
if len(frmCallback) = 0 then frmCallback = "(left blank)" end if
if len(frmAddress) = 0 then frmAddress = "(left blank)" end if
if len(frmEnquiry) = 0 then frmEnquiry = "(left blank)" end if
'send email
'----------
SUB sendmail( frmName, frmEmail, frmPhone, frmAddress, frmReferral, frmCallback, frmEnquiry )
Dim objCDO
Dim iConf
Dim Flds
Const cdoSendUsingPort = 2
Set objCDO = Server.CreateObject("CDO.Message")
Set iConf = Server.CreateObject("CDO.Configuration")
Set Flds = iConf.Fields
With Flds
.Item(cdoSendUsingMethod) = cdoSendUsingPickup
.Item(cdoSMTPServer) = "213.171.216.21"
.Item(cdoSMTPServerPort) = 25
.Item(cdoSMTPconnectiontimeout) = 10
.Update
End With
Set objCDO.Configuration = iConf
objCDO.To = "user@domainname.com"
objCDO.Subject = "Enquiry Form"
bodyHTML = "Name:" & vbcrlf _
& frmName & vbcrlf _
& vbcrlf _
& "Email:" & vbcrlf _
& frmEmail & "" & vbcrlf _
& vbcrlf _
& "Phone:" & vbcrlf _
& frmPhone & "" & vbcrlf _
& vbcrlf _
& "Address:" & vbcrlf _
& frmAddress & "" & vbcrlf _
& vbcrlf _
& "How did you hear about us?:" & vbcrlf _
& frmReferral & "" & vbcrlf _
& vbcrlf _
& "Do you require a callback?:" & vbcrlf _
& frmCallback & "" & vbcrlf _
& vbcrlf _
& "Enquiry:" & vbcrlf _
& frmEnquiry
'response.Write(bodyHTML)
'response.End
objCDO.TextBody = bodyHTML
objCDO.Send
END SUB
Set objCDO = Nothing
Set iConf = Nothing
Set Flds = Nothing
response.Redirect("contact-thankyou.asp")
end if %>
表格:
<form action="contact.asp" method="post">
<table border="0" cellpadding="2" cellspacing="0" class="text">
<tr>
<td><p>Name : * </p></td>
<td><input name="frmName" id="frmName" type="text" class="textbox" value="<%=frmName%>" size="35" title="Required" /></td>
</tr>
<tr>
<td><p>Email : *</p></td>
<td><input name="frmEmail" id="frmEmail" type="text" class="textbox" value="<%=frmEmail%>" size="35" title="Required" /></td>
</tr>
<tr>
<td><p>Phone : *</p></td>
<td><input name="frmPhone" id="frmPhone" type="text" class="textbox" value="<%=frmPhone%>" size="35" title="Required" /></td>
</tr>
<tr>
<td><p>Address :</p></td>
<td><input name="frmAddress" id="frmAddress" type="text" class="textbox" value="<%=frmAddress%>" size="35" /></td>
</tr>
<tr>
<td><p>How did you hear about us :</p></td>
<td><select name="frmReferral" id="frmReferral" class="block" style="width: 180px">
<option value=""> - SELECT - </option>
<option value="Magazine advert"<%if frmReferral = "Magazine advert" then%> selected="true"<%end if%>>Magazine advert</option>
<option value="Booklet advert"<%if frmReferral = "Booklet advert" then%> selected="true"<%end if%>>Booklet advert</option>
<option value="Web search"<%if frmReferral = "Web search" then%> selected="true"<%end if%>>Web search</option>
<option value="Web directory"<%if frmReferral = "Web directory" then%> selected="true"<%end if%>>Web directory</option>
<option value="Newspaper"<%if frmReferral = "Newspaper" then%> selected="true"<%end if%>>Newspaper</option>
<option value="TV"<%if frmReferral = "TV" then%> selected="true"<%end if%>>TV</option>
<option value="Other"<%if frmReferral = "Other" then%> selected="true"<%end if%>>Other</option>
</select>
</td>
</tr>
<tr>
<td><p>Do you require a call back :</p></td>
<td><select name="frmCallback" id="frmCallback" class="block" style="width: 180px">
<option value=""> - SELECT - </option>
<option value="Morning"<%if frmCallback = "Morning" then%> selected="true"<%end if%>>Morning</option>
<option value="Afternoon"<%if frmCallback = "Afternoon" then%> selected="true"<%end if%>>Afternoon</option>
<option value="Not Required"<%if frmCallback = "Not Required" then%> selected="true"<%end if%>>Not Required</option>
</select>
</td>
</tr>
<tr>
<td align="left" valign="top"><p>Enquiry :</p></td>
<td><textarea name="frmEnquiry" id="frmEnquiry" cols="27" rows="4" class="textbox" style="width: 180px"><%=frmEnquiry%></textarea></td>
</tr>
<tr>
<td> </td>
<td align="right"><input name="submit" type="submit" value=" Send " class="submit">
<input name="reset" type="reset" class="submit"></td>
</tr>
</table>
<p> </p>
</form>
对此有任何进一步的帮助表示感谢。感谢
答案 0 :(得分:1)
无法调用 sendmail 程序。
致电程序。
例如在'send email
评论专栏之后。
'send email
'----------
Call sendmail( frmName, frmEmail, frmPhone, frmAddress, frmReferral, frmCallback, frmEnquiry )
<强>更新强>
删除以下行,所有这些属性都完全是虚构的:)。这些变量已经在变量bodyHTML
。
objCDO.Name = frmName
objCDO.Phone = frmPhone
objCDO.Address = frmAddress
objCDO.Referral = frmReferral
objCDO.Callback = frmCallback
objCDO.Enquiry = frmEnquiry
答案 1 :(得分:0)
在配置部分,您看起来比您需要的更多。您可以在没有配置项目的情况下尝试它,还是需要它们?我会尝试一个简单的发送脚本,然后从那里扩展它。
以下是我获得以下内容的参考资料以及通过CDO发送电子邮件的其他方式:VBScript Email References
Const cdoSendUsingPickup = 1 'Send message using the local SMTP service pickup directory.
Const cdoSendUsingPort = 2 'Send the message using the network (SMTP over the network).
Const cdoAnonymous = 0 'Do not authenticate
Const cdoBasic = 1 'basic (clear-text) authentication
Const cdoNTLM = 2 'NTLM
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "Example CDO Message"
objMessage.From = "test@test.com"
objMessage.To = "user@hotmail.co.uk"
objMessage.TextBody = "This is some sample message text.." & vbCRLF & "It was sent using SMTP authentication."
'==This section provides the configuration information for the remote SMTP server.
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'Name or IP of Remote SMTP Server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.your.com"
'Type of authentication, NONE, Basic (Base64 encoded), NTLM
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
'Your UserID on the SMTP server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "youruserid"
'Your password on the SMTP server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "yourpassword"
'Server port (typically 25)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
'Use SSL for the connection (False or True)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
'Connection Timeout in seconds (the maximum time CDO will try to establish a connection to the SMTP server)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
objMessage.Configuration.Fields.Update
'==End remote SMTP server configuration section==
objMessage.Send