1

Indy IdSMTP オブジェクトを使用してスマートホストに電子メールを送信する Delphi アプリケーションがあります。

SMTP インターフェイスで Amazon SES サービスを使用したいと考えています。http://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-connect.htmlによると、TLS 接続を使用する必要があります。

IdSMTP オブジェクトの UseTLS プロパティに使用する値と、IOHandler で指定する必要がある値がわかりません。

Delphi で Amazon SES を使用する簡単な方法はありますか? 今のところ、テキスト メール メッセージのみを送信できるようにしたいと考えていますが、将来的には HTML メール メッセージを送信する必要があるかもしれません。

4

1 に答える 1

6

TIdIOHandlerサーバーに接続する前に、 などの SSL 対応コンポーネントをTIdSSLIOHandlerSocketOpenSSLプロパティに割り当て、プロパティを True にTIdSMTP.IOHandler設定する必要があります。TIdSMTP.UseEHLO次に、TLS 設定を構成するための 2 つの選択肢があります。

  1. TIdSMTP.UseTLSプロパティをに設定してから、プロパティを 25、587、または 2587 のいずれかに設定します (SES の 3 つのポートすべてがサポートされますutUseExplicitTLS) 。 TIdSMTP.PortutUseExplicitTLS

  2. TIdSMTP.UseTLSプロパティをに設定してから、プロパティを 465 または 2465 に設定します (SES の両方のポートがサポートされますutUseImplicitTLS) 。TIdSMTP.PortutUseImplicitTLS

UseTLS値の違いは、utUseExplicitTLS最初は暗号化されていないサーバーに接続し、必要に応じてサーバーに SMTPSTARTTLSコマンドを送信して暗号化を有効にするのに対し、utUseImplicitTLSSMTP 関連のデータを交換する直前にサーバーに接続して暗号化を有効にすることです。

Amazon は、サーバーの TLS 証明書を検証して、接続の整合性を検証することを提案しています。プロパティでフラグsslvrfPeersslvrfFailIfNoPeerCertフラグを有効にしてから、必要に応じてイベントを使用して証明書の詳細を検証できます。TIdSSLIOHandlerSocketOpenSSL.SSLOptions.VerifyModeTIdSSLIOHandlerSocketOpenSSL.OnVerifyPeer

于 2013-03-13T18:10:39.230 に答える