3

TLS を使用してメールを送信しようとしました。ポート番号は 587、サーバー名は smtp.gmail.com ですが、常にエラー「エラー '8004020e'」が発生しました。ポート 587 認証が TLS であるため、SSL を false に設定します。私のコードに何か問題がありますか?

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
4

1 に答える 1

2

代わりにポート 465 を使用し、Gmail または Amazon SES SMTP には ssl (smtpusessl = True) を使用します。

また、「古いアプリケーション」のメールボックスの使用が有効になっていることを確認する必要があります (Gmail アカウントのメールボックスにログインし、以前の失敗した試行について通知するメッセージがあるかどうかを確認します... (これは新しい「機能です。 "、これは Yahoo と Google のメール サーバーで有効にすることができます。これが設定されていないと、一部のモバイル メール クライアントでさえ動作しない可能性があります。)

于 2017-03-01T14:55:26.203 に答える