在网站上发送电子邮件时,我在提交表单时遇到问题。表格可在以下位置找到。
http://www.someone.com/medicalights/contact.htm
我正在使用SMTPsvg.Mailer对象发送电子邮件。服务器是否支持此对象?如果是,我们是否可以在远程主机属性中使用localhost。我也试过CDONTS.New | MailCDO.Message但这些也不能正常工作。请向托管公司的支持部门询问此问题。
以下代码用于发送电子邮件。
设置Mailer = Server.CreateObject(“SMTPsvg.Mailer”)
Mailer.RemoteHost = "localhost"
Mailer.ReturnReceipt = false
Mailer.ConfirmRead = false
Mailer.Priority = 1
Mailer.Urgent = false
Mailer.Timeout = 30
Mailer.FromName = "someone.com"
Mailer.FromAddress = "info@someone.com"
Mailer.AddRecipient "que33@gmail.com", "que33@gmail.com"
Mailer.Subject = "CONTACT US Request"
Mailer.BodyText = Body
SendMail = Mailer.SendMail
我在其他网站上使用相同的代码,但其工作完美,但这不是,而且两个网站的联系表格都会向同一地址发送电子邮件。
答案 0 :(得分:0)
表单链接不起作用。我希望看到您的表单的HTML,以及读取提交的数据的ASP代码。我也同意约翰的建议,你使用CDOSYS代码发送邮件。这可能是你的问题。以下是我为CMS创建的功能,以便在页面需要发送电子邮件时使用:
<%
function email(s_from,s_reply_to,s_recipients,s_bcc,s_subject,s_msg,s_type,s_msg_error_add,s_remote_host)
if (s_msg_error_add<>"") then s_msg_error_add = "<hr>" & vbCrLf & s_msg_error_add
if (s_remote_host="default") then s_remote_host = application("s_mail_server")
if (s_remote_host="") then s_remote_host = "localhost"
s_remote_host=lcase(s_remote_host)
's_recipients looks like "Scott <scott@domain.net>; Sue <andy@domain.net>" etc
s_from = replace(s_from,","," ",1,-1,1)
s_from = replace(s_from," "," ",1,-1,1)
s_from = replace(s_from,"[","<",1,-1,1)
s_from = replace(s_from,"]",">",1,-1,1)
if (s_reply_to<>"") then
s_reply_to = replace(s_reply_to,","," ",1,-1,1)
s_reply_to = replace(s_reply_to," "," ",1,-1,1)
s_reply_to = replace(s_reply_to,"[","<",1,-1,1)
s_reply_to = replace(s_reply_to,"]",">",1,-1,1)
end if
s_recipients = replace(s_recipients,",",";",1,-1,1)
s_recipients = replace(s_recipients," "," ",1,-1,1)
s_recipients = replace(s_recipients,"[","<",1,-1,1)
s_recipients = replace(s_recipients,"]",">",1,-1,1)
if (s_bcc<>"") then
s_bcc = replace(s_bcc,","," ",1,-1,1)
s_bcc = replace(s_bcc," "," ",1,-1,1)
s_bcc = replace(s_bcc,"[","<",1,-1,1)
s_bcc = replace(s_bcc,"]",">",1,-1,1)
end if
err.clear
Dim MailerConfig
Dim Mailer
Dim strRet
dim sch
strRet = ""
sch = "http://schemas.microsoft.com/cdo/configuration/"
Set MailerConfig = CreateObject("CDO.Configuration")
Set Mailer = CreateObject("CDO.Message")
With MailerConfig.Fields
'.Item(sch & "sendusing") = 2 'send using port - if err then this is really "SendUsingMethod"
'.Item(sch & "sendusingmethod") = 2 'send using port - if err then this is really "SendUsingMethod"
.Item(sch & "smtpconnectiontimeout") = 900
'.Item(sch & "smtpauthenticate") = 1 'use basic (clear-text) authentication
.Item(sch & "smtpserver") = s_remote_host
'.Item(sch & "smtpserverport") = 25
'.Item(sch & "sendusername") = SMAUTHUSER
'.Item(sch & "sendpassword") = SMAUTHPASS
.Update
End With
Mailer.Configuration = MailerConfig
'Mailer.Fields(cdoImportance) = 1
'Mailer.Fields("urn:schemas:mailheader:X-MSMail-Priority") = 1
'Mailer.Fields("urn:schemas:mailheader:X-Mailer") = ""
'Mailer.Fields.Update
'-- Set the Mail Properties
'on error resume next
Mailer.From = s_from
Mailer.To = s_recipients
if (s_reply_to<>"" and s_reply_to<>"na") then Mailer.ReplyTo = s_reply_to
b_redirect=false
if (err.number<>0 and err.number<>13) then
session("msg") = "Error in i_fn_email_cdo.asp line 72, Error: " & err.number & "<br>" & err.description
if (b_redirect) then response.redirect ("error_report.asp?send_mail=yes")
end if
if (s_bcc<>"" AND s_bcc<>"na" AND s_bcc<>"n/a") then Mailer.BCC = s_bcc
if (err.number<>0 and err.number<>13) then
session("msg") = "Error in i_fn_email_cdo.asp line 79, Error: " & err.number & "<br>" & err.description
if (b_redirect) then response.redirect ("error_report.asp?send_mail=yes")
end if
Mailer.Subject = s_subject
if (err.number<>0 and err.number<>13) then
session("msg") = "Error in i_fn_email_cdo.asp line 86, Error: " & err.number & "<br>" & err.description
if (b_redirect) then response.redirect ("error_report.asp?send_mail=yes")
end if
if (s_type="html") then
Mailer.AutoGenerateTextBody = True
s_msg = replace(s_msg,vbCrLf,"<br>",1,-1,1)
else
Mailer.AutoGenerateTextBody = False
end if
if (err.number<>0 and err.number<>13) then
session("msg") = "Error in i_fn_email_cdo.asp line 103, Error: " & err.number & "<br>" & err.description
if (b_redirect) then response.redirect ("error_report.asp?send_mail=yes")
end if
Mailer.MimeFormatted = False
if (err.number<>0 and err.number<>13) then
session("msg") = "Error in i_fn_email_cdo.asp line 110, Error: " & err.number & "<br>" & err.description
if (b_redirect) then response.redirect ("error_report.asp?send_mail=yes")
end if
if (s_type = "text") then
Mailer.TextBody = fn_dirty(s_msg)
else
's_msg_html = replace(s_msg,vbCrLf,"<br>",1,-1,1)
s_msg_html = s_msg
Mailer.HTMLBody = fn_dirty(s_msg_html)
end if
if (err.number<>0 and err.number<>13) then
session("msg") = "Error in i_fn_email_cdo.asp line 123, Error: " & err.number & "<br>" & err.description
if (b_redirect) then response.redirect ("error_report.asp?send_mail=yes")
end if
'-- Fire off the email message
Mailer.Send
if (err.number<>0 and err.number<>13) then
Select Case err.Number
Case -2147220973
strRet = " Failure to Send Report Message - Server Not Found" & vbCrLf & " Error: " & err.Number & " - " & err.Description
Case -2147220975
strRet = " Failure to Send Report Message - Server Authentication Failed" & vbCrLf & " Error: " & err.Number & " - " & err.Description
Case Else
strRet = " Failure to Send Report Message - Error: " & err.Number & " - " & err.Description
End Select
msg = "<br>Error in i_fn_email_cdo.asp: " & strRet & "<br><br>"
msg = msg & "remote host = " & s_remote_host & "<br>"
s_from = replace(s_from,"<","[",1,-1,1)
s_from = replace(s_from,">","]",1,-1,1)
s_reply_to = replace(s_reply_to,"<","]",1,-1,1)
s_reply_to = replace(s_reply_to,">","[",1,-1,1)
s_recipients = replace(s_recipients,"<","[",1,-1,1)
s_recipients = replace(s_recipients,">","]",1,-1,1)
s_bcc = replace(s_bcc,"<","[",1,-1,1)
s_bcc = replace(s_bcc,">","]",1,-1,1)
msg = msg & "from = " & s_from & "<br>"
msg = msg & "to = " & s_recipients & "<br>"
msg = msg & "subject = " & s_subject & "<br>"
msg = msg & "recipients = " & s_recipients & "<br><br>"
if (s_type = "text") then
msg = msg & s_msg
else
msg = msg & s_msg_html
end if
msg = msg & "<br>"
msg = msg & s_msg_error_add
session("msg") = msg
Set Mailer = Nothing
set MailerConfig = nothing
if (b_redirect) then response.redirect ("error_report.asp?send_mail=yes")
end if
Set Mailer = Nothing
set MailerConfig = nothing
email = true
end function
Function fn_dirty(FixWhat)
if (isnull(FixWhat) or FixWhat="") then
FixWhat=""
else
FixWhat=trim(FixWhat)
FixWhat=replace(FixWhat,"<ahref","<a href",1,-1,1)
FixWhat=replace(FixWhat,"<spanclass","<span class",1,-1,1)
FixWhat=replace(FixWhat," "," ",1,-1,1)
FixWhat=replace(FixWhat,"’","'",1,-1,1)
FixWhat=replace(FixWhat,"'","'",1,-1,1)
FixWhat=replace(FixWhat,"%27","'",1,-1,1)
FixWhat=replace(FixWhat,"'","'",1,-1,1)
FixWhat=replace(FixWhat,"’","'",1,-1,1)
FixWhat=replace(FixWhat,"/","/",1,-1,1)
FixWhat=replace(FixWhat,"''''","'''",1,-1,1)
FixWhat=replace(FixWhat,""",chr(34),1,-1,1)
FixWhat=replace(FixWhat,"%22",chr(34),1,-1,1)
FixWhat=replace(FixWhat,chr(13) & chr(10),"",1,-1,1)
FixWhat=replace(FixWhat,"title=","alt=",1,-1,1)
FixWhat=replace(FixWhat,"src=" & chr(34) & chr(32),"",1,-1,1)
FixWhat=replace(FixWhat,"src=" & chr(34) & "/images","src=" & chr(34) & "images",1,-1,1)
FixWhat=replace(FixWhat,"background=" & chr(34) & chr(32),"background=" & chr(34) & chr(34) & chr(32),1,-1,1)
FixWhat=replace(FixWhat,"x=" & chr(34) & chr(32)," ",1,-1,1)
FixWhat=replace(FixWhat,"&","&",1,-1,1)
FixWhat=replace(FixWhat,"amp;","&",1,-1,1)
FixWhat=replace(FixWhat,"&","&",1,-1,1)
FixWhat=replace(FixWhat,"&&","&",1,-1,1)
FixWhat=replace(FixWhat,"&&","&",1,-1,1)
FixWhat=replace(FixWhat,"<","<",1,-1,1)
FixWhat=replace(FixWhat,">",">",1,-1,1)
FixWhat=replace(FixWhat,"//<![CDATA[","",1,-1,1)
FixWhat=replace(FixWhat,"//]]","",1,-1,1)
FixWhat=replace(FixWhat,"<TABLE","<table",1,-1,1)
FixWhat=replace(FixWhat,"<TBODY>","<tbody>",1,-1,1)
FixWhat=replace(FixWhat,"<TR","<tr",1,-1,1)
FixWhat=replace(FixWhat,"<TD","<td",1,-1,1)
FixWhat=replace(FixWhat,"</TR>","</tr>",1,-1,1)
FixWhat=replace(FixWhat,"</TD>","</td>",1,-1,1)
FixWhat=replace(FixWhat,"<html><br>","<html>",1,-1,1)
FixWhat=replace(FixWhat,"<head><br>","<head>",1,-1,1)
FixWhat=replace(FixWhat,"<body><br>","<body>",1,-1,1)
FixWhat=replace(FixWhat,"<br><tbody>","<tbody>",1,-1,1)
FixWhat=replace(FixWhat,"<tbody><br>","<tbody>",1,-1,1)
FixWhat=replace(FixWhat,"<br><tr>","<tr>",1,-1,1)
FixWhat=replace(FixWhat,"<tr><br>","<tr>",1,-1,1)
FixWhat=replace(FixWhat,"<br><td","<td",1,-1,1)
FixWhat=replace(FixWhat,"<br></html>","</html>",1,-1,1)
end if
fn_dirty=FixWhat
End Function
%>
答案 1 :(得分:0)
问题可能是这一行......
Mailer.RemoteHost = "localhost"
如果localhost未配置为该用户/域发送/中继,则它将失败而不给出任何指示。如果您已为youu站点配置了邮件服务器,请尝试将其设置为RemoteHost。您可以使用alias.domain或IP号。