CDO. Сообщение не отправляет почту - PullRequest
0 голосов
/ 14 октября 2019

Попытка адаптировать веб-форму для использования CDO.Message. Код был настроен ранее для использования Persits.MailSender и CDONTS.NewMail до этого. Просто не могу заставить его работать, несмотря на мои изменения в этот раз. После заполнения обязательных полей и нажатия кнопки «Отправить почту» страница очищается и отображает только заголовок. Нет ошибки. Нет сообщения «отправлено». Ничего.

Форма здесь: http://sverdina.com/feedback.asp. Первая часть выполняет некоторую проверку, чтобы убедиться, что все обязательные поля заполнены и т. Д. Эта часть выполняется нормально. Похоже на то, что будет дальше, но не выполнится.

К сожалению, это было давно, поэтому, пожалуйста, прости любые очевидные ошибки кодирования. Любая помощь или предложения будут высоко оценены!

<%@ LANGUAGE="VBSCRIPT" %>
<HTML>
<HEAD>
<TITLE>sverdina.com - feedback</TITLE>
<link rel="stylesheet" type="text/css" href="sverdina.css">
</HEAD>
<body bgcolor="696969" link="#ffd700" vlink="#ffd700" alink="#ffd700">
<% 
Call MenuBar
If Request("action") = "send" Then
	Call SendMail
Else
	Call GetInfo
End If
Call PageFooter
%>
</BODY>
</HTML>
<% Sub SendMail %>
<% 
ErrorStatus = 0
ErrorMessage = ""
If Trim(Request("comment")) + "" = "" Then
	ErrorStatus = 1
	ErrorMessage = "Please provide a non-blank comment"
ElseIf Request("name") + "" = "" Then
	ErrorStatus = 2
	ErrorMessage = "Please provide a non-blank name"
ElseIf Trim(Request("email")) + "" = "" Then
	ErrorStatus = 3
	ErrorMessage = "Please provide a non-blank e-mail address"
ElseIf Trim(Request("email")) & "" <> "" and InStr(Request("email"),chr(64)) = 0 Then
	ErrorStatus = 4
	ErrorMessage = "Please enter a valid e-mail address"
End If
If ErrorStatus > 0 Then %>
<form action="feedback.asp" method="post">
<input type="hidden" name="action" value="send">
<br>
<FONT FACE="Arial, Helvetica, Verdana" COLOR="red"><b><DIV CLASS="h1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* <%= ErrorMessage %> *</DIV></b></FONT>
<br>
<FONT FACE="Arial, Helvetica, Verdana" COLOR="gainsboro">
<DIV CLASS="h2_30">
<p>Your Name:
<br>
<input name="name" size=35 value="<%= Request("name")%>">
<p>Your E-Mail Address:
<br>
<input name="email" size=35 value="<%= Request("email")%>">
<p>Your Comments:
<br>
<textarea name="comment" cols=50 rows=7><%= Request("comment") %></textarea>
<p><input type="submit" value="Send Mail">
</FONT>
</DIV>
<br>
<DIR>
<FONT FACE="Arial, Helvetica, Verdana" COLOR="#ffd700">
<DIV CLASS="h3">
<b>* All fields required</b>
</DIV>
</FONT>
</DIR>
</form>
<% Else  
  strBody = Request("comment") & Chr(13) & Chr(10) & Chr(13) & Chr(10)
  strBody = strBody & Request("name") & Chr(13) & Chr(10) & Request("email") & Chr(13) & Chr(10)
  
Set objMessage = CreateObject("CDO.Message")
objMessage.From =  Request("email")
objMessage.Body = strBody 
objMessage.MailFormat = 1
objMessage.To = "sergio@sverdina.com"

On Error Resume Next

objMessage.Send
   
Response.Write "<BR><FONT FACE=Arial, Helvetica, Verdana COLOR=gainsboro><DIV CLASS=h4_10b><DIV CLASS=h4_10b><DIV CLASS=h4_10b><p>Feedback Sent!</p></DIV></DIV></DIV></FONT>"
set objMessage = nothing

  End If %>
<% End Sub %>
<% Sub GetInfo %>
<form action="feedback.asp" method="post">
<input type="hidden" name="action" value="send">
<input type="hidden" name="subject" value="Feedback from sverdina.com">
<FONT FACE="Arial, Helvetica, Verdana" COLOR="gainsboro">
<DIV CLASS="h2_30">
<p>Your Name:
<br>
<input name="name" size=35>
<p>Your E-Mail Address:
<br>
<input name="email" size=35>
<p>Your Comments:
<br>
<textarea name="comment" cols=50 rows=7 ></textarea>
<p><input type="submit" value="Send Mail">
</DIV>
</FONT>
<FONT FACE="Arial, Helvetica, Verdana" COLOR="#ffd700">
<DIV CLASS="h3">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>*All fields required</b>
</DIV>
</FONT>
</form>
<% End Sub %>
<% Sub PageFooter %>
<!--#INCLUDE FILE="footer.inc"-->
<% End Sub %>
<% Sub MenuBar %>
<!--#INCLUDE FILE="header.inc"-->
<% End Sub %>

1 Ответ

0 голосов
/ 15 октября 2019

Разобрался. «Кишки» должны были выглядеть следующим образом:

Set objMessage = CreateObject("CDO.Message")
objMessage.Sender =  Request("name")
objMessage.From =  Request("email")
objMessage.TextBody = strBody 
objMessage.To = "sergio@sverdina.com"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...