2012-04-23 19 views
5

Delphi 7 with Indy 10.5.8.0。SSLを使用したDelphiとIndy

これが以前に質問されたことを再現しているとお詫び申し上げますが、私はこの問題を解決できません。

Indy TidMessageBuilderHTMLを使用して画像を埋め込んだHTMLメールを送信して、自分のHTMLメールを作成しています。これは非常にクールで、これまで完全に動作しています。

私の問題は、SSL/TLS認証を必要とするSMTPサーバーに対応することです。私はOPENSSL DLLファイルに非常に多くの問題を抱えていましたが、現在は32ビット版が64ビット版などで動作しないようですが、DLLファイルの使用を避ける回避策が必要です。 (そして、私はそれを単一のexeアプリケーションに保つことが望ましい)。

私の質問:私は、Indis V10をそのままOPENSSL dllを出荷することなく使いたいです。これを行う方法はありますか? Indy ssl(TIdSSLIOHandlerSocketOpenSSL)をサポートする利用可能なdelphi SSLライブラリはありませんか?

また、私は埋め込まれた画像で私のHTMLメールを容易にする他の提案に公開しています。ありがとうございました。

+0

あなたのexeファイルに "すべて"が必要な場合は、dprファイルのuses節にある他のすべてのユニットの前にdllを埋め込み、初期化時にアプリケーションからdllを抽出するユニットを追加します。あなたのDLLがx64上で動作しないことが奇妙に思えます... – ComputerSaysNo

+0

SSLの静的リンクは、おそらく誰もしていないようです。おそらくCライブラリの依存関係が複雑すぎるからです。 SSL dllの埋め込みと読み込みはあなたの唯一の選択肢です。はい、32ビットDLLは64ビットウィンドウで動作します。それはなぜでしょうか? –

+2

ちょうど脇役。 ''ここから '' Indy'互換の 'OpenSSL'ライブラリを入手できます(http://indy.fulgan.com/SSL/)。そこには、64ビットバージョンのライブラリもあります。 – TLama

答えて

2

TIdSSLIOHandlerSocketOpenSSLクラスをサポートするライブラリについては、TIdSSLIOHandlerSocketOpenSSL.StartSSLメソッドで、外部DLLを必要とするクラスとまったく同じです。

最も簡単な解決策は、DLL(32ビットまたは64ビットバージョン)を出荷し、 "SendMail"機能を呼び出そうとする前にランタイムにDLLの存在を確認することで、ユーザーにわかりやすいエラーメッセージ、あなたのアプリケーションによってどのファイルが見つかると予想されているかを正確に示しています。

関連する問題