Delphi Indy 10-IdSMTP.Connect-Rising“;无法加载SSL库。”;
以下是我的配置:Delphi Indy 10-IdSMTP.Connect-Rising“;无法加载SSL库。”;,delphi,ssl,smtp,indy,delphi-6,Delphi,Ssl,Smtp,Indy,Delphi 6,以下是我的配置: IdSMTP1.Host := 'smtp.gmail.com'; IdSMTP1.Port := 587; IdSMTP1.UseTLS := utUseExplicitTLS; IdSMTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1; IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1; 我已经从下载了OpenSSL,libeay32.dll和ssleay32.
IdSMTP1.Host := 'smtp.gmail.com';
IdSMTP1.Port := 587;
IdSMTP1.UseTLS := utUseExplicitTLS;
IdSMTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1;
我已经从下载了OpenSSL,libeay32.dll
和ssleay32.dll
都在我的应用程序的同一文件夹中
印地版本为:10.0.52
以下命令正在我的计算机上运行:
telnet smtp.gmail.com 587
如何使用Indy在启用TLS的SMTP服务器(以我的Gmail为例)中正确连接
似乎IdSSLOpenSSLHeaders.Load
找不到以下过程的地址,其中包括:
@IdSslSessionGetId := LoadIndyFunction(fn_SSL_SESSION_get_id);
@IdSslSessionGetIdCtx := LoadIndyFunction(fn_SSL_SESSION_get_id_ctx);
@IdSslCtxGetVersion := LoadIndyFunction(fn_SSL_CTX_get_version);
@IdSslCtxSetOptions := LoadIndyFunction(fn_SSL_CTX_set_options);
@iddes_set_odd_parity := LoadFunctionCLib(fn_des_set_odd_parity);
@iddes_set_key := LoadFunctionCLib(fn_des_set_key);
@iddes_ecb_encrypt := LoadFunctionCLib(fn_des_ecb_encrypt);
这是从加载失败的返回的消息:
SSL_CTX_set_info_callback_indy
X509_STORE_CTX_get_app_data_indy
X509_get_notBefore_indy
X509_get_notAfter_indy
SSL_SESSION_get_id_indy
SSL_SESSION_get_id_ctx_indy
SSL_CTX_get_version_indy
SSL_CTX_set_options_indy
des_set_odd_parity
des_set_key des_ecb_encrypt
以下是Embarcadero论坛中以下讨论的引述:
Indy 8、9和早期10版本使用定制的OpenSSL DLL,因为
OpenSSL并没有公开Indy需要访问的所有内容,因此Indy必须添加
DLL的一些自定义函数。后来Indy 10的版本切换到了
官方OpenSSL DLL
Indy的定制OpenSSL DLL不再分布在任何地方(据我所知)
的),但您可以尝试此存档下载:
Fulgan提供了一些老的Indy特定的OpenSSL DLL
10.0.52是Indy 10的过时版本。自那次发布以来,Indy 10有了很多变化。您真的应该升级到,然后可以使用Fulgan提供的最新OpenSSL dll。我遵循这一点,我相信问题在于dll的正确版本。我必须测试每一个吗?这是你使用的版本。@RemyLebeau谢谢你,Remy。谢谢特拉玛,谢谢你抽出时间