4

最新のインディスナップショット(昨日インストール)と最新のSSLライブラリを使用しています。

idSMTPを使用してメールを送信しようとすると、コンポーネントが最初に接続したときに例外が発生します。

SSLライブラリを読み込めませんでした

。面白いことに、再試行は常に機能します。デバッグ問題はIsSSLOpenSSLHeader、関数Loaad:boolean、lineにあることがわかりました

@OpenSSL_add_all_algorithms := LoadFunctionCLib('OpenSSL_add_all_algorithms');

なぜ最初は失敗し、2回目は失敗しないのかはまだ謎ですが、調査を続ける前に、誰かがこの問題の解決策を知っているかのようにしたいと思います。

4

2 に答える 2

5

使用しているコードは最新のスナップショットではありません。そのバグは数週間前に修正されました。引用する行は最新のコードではなく、次のように置き換えられています。

fn_OPENSSL_add_all_algorithms_noconf = 'OPENSSL_add_all_algorithms_noconf';
fn_OpenSSL_add_all_algorithms = 'OpenSSL_add_all_algorithms';

@OpenSSL_add_all_algorithms := LoadOldCLib(fn_OpenSSL_add_all_algorithms, fn_OPENSSL_add_all_algorithms_noconf);
于 2010-03-12T01:28:10.203 に答える
0

私はWin7/64でDelphiXE-1を使用しており、SSLとIndyがデフォルトでインストールされています。今週、私はSMTPとSSLでいくつかの作業をしなければなりませんでした、そして私はあなたが報告したのと同じ問題に遭遇しました。私たちのアプリケーションはやや複雑で、すでにいくつかの場所で稼働して展開されており、コードのいくつかのポイントでIndyを使用しているため、新しいバージョンのIndyのインストールや再構築などはあまり口に合いませんでした。

問題は最初のパスでのみ発生するため、コードの一部をトレースして、この単純で痛みのない回避策を考え出しました。

            smtpClient.connect;
            smtpClient.disconnect;
            smtpClient.connect;
            if not smtpClient.Authenticate then
                raise ... 
            smtpClient.Send(msg);

呼び出しconnnectてからdisconnect、SSLライブラリがロードされるので、2回目の呼び出しでconnect問題ありません。

正常に動作します。

于 2015-09-18T19:13:25.417 に答える