0

Delphi XE8 で Delphi XE3 アプリケーションを再コンパイルしています。

アプリケーションは、TIdSMTP オブジェクトを使用して、Amazon SES (アイルランドと北バージニアで試行) にメッセージを送信します。

これらは、TIdSMTP コンポーネントで設定された属性の一部です (更新: さらにフィールドが追加されました)。

  • IOHandler次のサブフィールドがありますIdSSLIOHandlerSocketOpenSSL: is Destinationemail-smtp.eu-west-1.amazonaws.com:25、is、is、is、is、is、is、is、is、is、is、is、is、is、is _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 、は、は、は、はHostemail-smtp.eu-west-1.amazonaws.comIPVersionId_IPv4MaxLineActionmaExceptionMaxLineLength16384Port25ReadTimeOut-1RecvBufferSize32768ReuseSocketrsOSDependentSendBufferSize32768SSLOptions.MethodsslvTLSv1SSLOptions.ModesslmUnassignedSSLOptions.SSLVersions[sslvTLSv1]TransparentProxyIdSSLIOHandlerSocketOpenSSL.TransparentProxy.AutenticationNoAuthenticationTransparentProxy.IPVersionId_IPv4TransparentProxy.Port1080TransparentProxy.VersionsvNoSocksUseNagleTrue

  • Port25

  • UseTLSutUseExplicitTLS
  • 「Indy について」は 10.6.2.5263 です

XE8 では、「SSL ネゴシエーションに失敗しました」というメッセージが表示されます。handler.Send(msg);次のコードの行で例外が発生します。まったく同じコードが XE3 でも問題なく動作するので、Indy の更新に何らかの関係があるのではないかと推測しています。

var
  handler: TIdSMTP;
.
.
handler.

handler.Connect;
handler.Send(msg);

XE8 でこの例外が発生するのはなぜですか? 現在 XE8 がインストールされているマシンは、XE3 がインストールされていた場所と同じであり、SSL dll は依然としてそれぞれの Degug および Release 出力ディレクトリにあります。XE8 は今のところデバッグ出力ディレクトリのみを使用し、古い XE3 実行可能ファイルはリリース出力ディレクトリからでも正常に動作します。

更新: この問題は、Dev マシンで古い SSL DLL を更新するだけで修正されました。どうやら最新のIndyはデフォルトで安全でないものを無効にしています。

4

0 に答える 0