0

几年前,我在 ASP 中创建了一个“sendmail”脚本,包括电子邮件格式验证和 CAPTCHA 验证。它运作良好。

我已经有一段时间没有通过表格收到任何询问了,所以我想自己测试一下联系页面。瞧,脚本似乎不再起作用。

有谁知道我的方法(请参见下文)在过去几年中是否已经过时?!现在在(经典)ASP 中有不同的推荐方式吗?

这是我脚本的第一部分(为保护隐私而更改了电子邮件地址):

<%
Dim mail
Dim msgtext
Set mail = CreateObject("CDO.Message")
mail.To = "abcdef@ymail.com"
mail.Cc = "abcdefg@gmail.com"
mail.From = Request.Form("From")
mail.Subject = "Enquiry from website"

mail.TextBody = "From: " & Request.Form("Fname") & vbCRLF & "Message: " &  Replace(Request.Form("Body"),vbCrLf ,"") & vbCRLF & "Telephone: " & Request.Form("Phone") & vbCRLF


if not IsEmpty(Request.Form("btnTest")) then
    if TestCaptcha("ASPCAPTCHA", Request.Form("captchacode")) then
    else
        msgtext = "c"
    end if
end if

mail.Send()
'Destroy the mail object!
Set mail = nothing
msgtext = "y"
%>
4

2 回答 2

1

唯一让我震惊的是默认邮件服务器可能已停止/未找到。据我所知,指向特定服务器是一种很好的做法

mail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing")=2
    'Name or IP of remote SMTP server
mail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver")="smtp.server.com"
     'Server port
mail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=25 
mail.Configuration.Fields.Update
mail.Send
set mail=nothing
于 2012-12-26T01:20:46.683 回答
0

毫无疑问,您最后添加了 Captcha,因此这将是通过取消定义其要求来测试的第一件事。还...

  • 在“mail.Send”之后不需要 ()。
  • 检查您的“发件人”变量是否为空。
于 2012-12-26T01:49:43.613 回答