Моя Форма перенаправляет на страницу спасибо, но не отправляет мне информацию, представленную - PullRequest
0 голосов
/ 08 декабря 2011

Меня попросили обновить этот вопрос до самого последнего кода и ошибки.Теперь я не получаю сообщение об ошибке, но информация из формы все еще не отправляется на электронную почту.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 ]

1 голос
/ 08 декабря 2011

Нет вызова для 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 
0 голосов
/ 08 декабря 2011

Похоже, у вас больше, чем вам нужно в разделе конфигурации.Можете ли вы попробовать это без элементов конфигурации или они вам нужны?Я бы попробовал простой сценарий отправки, а затем развернул его оттуда.

Вот ссылка, где я получил то, что ниже, а также другие способы отправки электронной почты через 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
...