6

VBScriptCDOをAmazonSESSMTPで機能させるためのトリックはありますか?エラーは発生しませんが、テスト用の電子メールも送信されません。SSLをFalseに変更すると、530エラーが発生するため、少なくともサーバーに到達していることがわかります。私は何が間違っているのですか?

EmailSubject = "Sending Email by CDO"
EmailBody = "This is the body of a message sent via" & vbCRLF & _
        "a CDO.Message object using SMTP authentication."

Const EmailFrom = "yyy@xxx.com"
Const EmailFromName = "Me Test"
Const EmailTo = "eee@aaa.com"
Const SMTPServer = "email-smtp.us-east-1.amazonaws.com"
Const SMTPLogon = "xxxxxx"
Const SMTPPassword = "xxxxxxx"
Const SMTPSSL = True
Const SMTPPort = 25

Const cdoSendUsingPickup = 1    'Send message using local SMTP service pickup directory.
Const cdoSendUsingPort = 2  'Send the message using SMTP over TCP/IP networking.

Const cdoAnonymous = 0  ' No authentication
Const cdoBasic = 1  ' BASIC clear text authentication
Const cdoNTLM = 2   ' NTLM, Microsoft proprietary authentication

' First, create the message

Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = EmailSubject
objMessage.From = """" & EmailFromName & """ <" & EmailFrom & ">"
objMessage.To = EmailTo
objMessage.TextBody = EmailBody

' Second, configure the server

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPServer

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = SMTPLogon

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = SMTPPassword

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = SMTPPort

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = SMTPSSL

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60

objMessage.Configuration.Fields.Update

' Now send the message!

objMessage.Send
4

2 に答える 2

7

CDO は TLS をサポートせず、SSL のみをサポートします。AWS SES では、TCP ポート 465 で SSL を使用できます。投稿したスクリプトのように、ポート 25 で SSL を使用しようとすると、次のエラー メッセージが返されます。

CDO.Message.1: トランスポートがサーバーへの接続を失いました。

このスクリプトでエラーが発生しない理由がわかりません。そうです。ポートを 465 に変更してみてください。ポートを 465 に変更すると、機能します。

于 2012-10-10T17:23:46.847 に答える
0

これは素晴らしいルーチンです。objMessage をオブジェクトとして宣言する必要があります。

objMessage をオブジェクトとして暗くする

また、彼は Const を使用しているため、これらの項目のいずれかを変更したい場合は、それらを文字列として宣言し、それらの行から Const を削除する必要があります。SMTPPort を 465 に置き換え、SES id/pw を使用する必要がありましたが、完璧に動作しました!

于 2016-05-06T16:38:26.270 に答える