Отправка электронного письма по TLS

Я пытаюсь отправить электронное письмо, используя TLS, и номер порта 587 с именем сервера smtp.gmail.com, но всегда получаю сообщение об ошибке "ошибка 8004020e". Я установил SSL на false, потому что аутентификация порта 587 - TLS. Что-то не так в моем коде?

Set objMail = Server.CreateObject("CDO.Message")

Set objConfig = CreateObject("CDO.Configuration")

objConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
objConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587
objConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing")    = 2
objConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
objConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl")      = false 
objConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername")    = "xx@gmail.com"
objConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword")    = "xx"
objConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60

objConfig.Fields.Update

Set objMail.Configuration = objConfig

objMail.From     = "xx@gmail.com"
objMail.To       = "yy@yahoo.com"

objMail.Subject  = "Test EMAIL"
objMail.TextBody = "Test EMAIL"
objMail.HTMLBody = "fffffffffff"

objMail.Send
Set objMail = Nothing

1 ответ

Вместо этого используйте порт 465 и используйте ssl (smtpusessl = True) для Gmail или Amazon SES SMTP.

А также необходимо убедиться (войдите в почтовый ящик учетной записи Gmail, проверьте, есть ли сообщения, которые сообщают вам о предыдущих неудачных попытках), что использование почтового ящика для "старых приложений" включено... (это новая "функция" ", это может быть включено на почтовых серверах Yahoo и Google не так давно... Даже может быть, некоторые мобильные почтовые клиенты не будут работать, если это не установлено.)

Другие вопросы по тегам