CDO - отправка электронной почты возвращает ложь, даже если письмо отправлено - PullRequest
0 голосов
/ 17 февраля 2012

Я взял этот пример из w3school, однако, когда я добавляю оператор if, чтобы проверить, было ли отправлено письмо, он отображает ложный код, даже если я получаю письмо.

Я не уверен, как работает asp, но я предполагаю, что myMail возвращает логическое значение? Или нет? Как проверить, было ли отправлено электронное письмо?

<%
Set myMail=CreateObject("CDO.Message")
myMail.Subject="Sending email with CDO"
myMail.From="mymail@mydomain.com"
myMail.To="examplek@exm.com"
myMail.HTMLBody = "<h1>This is a message.</h1>"
If myMail.Send Then
    Response.AddHeader "Content-type", "application/json"
    Response.Write "{ request: 'success'}"
Else
    Response.AddHeader "Content-type", "application/json"
    Response.Write "{ request: 'failed'}"
End If

set myMail=nothing
%>

1 Ответ

1 голос
/ 17 февраля 2012

Метод .Send просто отправляет сообщение, не возвращая ответ.

Вы можете обработать ошибку, возникшую из-за ошибки при отправке сообщения, как показано ниже:

On Error Resume Next
myMail.Send
If Err.Number = 0 then
    Response.ContentType="application/json"
    Response.Write "{ request: 'success'}"
Else
    Response.ContentType="application/json"
    Response.Write "{ request: 'failed'}"
End If
...