我的表单重定向到thankyou页面,但不向我发送提交的信息

时间:2011-12-07 20:52:05

标签: asp-classic vbscript cdo.message

我被要求将此问题更新为最新的代码和错误。我现在没有收到任何错误,但表单中的信息仍未发送到电子邮件。 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>&nbsp;</td>
                            <td align="right"><input name="submit" type="submit" value=" Send " class="submit">
                            &nbsp;&nbsp;&nbsp;
                            <input name="reset" type="reset" class="submit"></td>
                        </tr>
                    </table>
                    <p>&nbsp;</p>
                </form>

对此有任何进一步的帮助表示感谢。感谢

2 个答案:

答案 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