本文介绍了Indy 10 - IdSMTP.Connect raise“无法加载SSL库”。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的配置:

IdSMTP1.Host := 'smtp.gmail.com';
IdSMTP1.Port := 587;
IdSMTP1.UseTLS := utUseExplicitTLS;
IdSMTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1;

我从, libeay32.dll ssleay32.dll 都在同一个文件夹我的应用程序。

I've downloaded the OpenSSL from here, both libeay32.dll and ssleay32.dll are in the same folder of my application.

Indy版本是:10.0.52

The Indy version is: 10.0.52

以下命令正在我的机器上:

The following command is working on my machine:

telnet smtp.gmail.com 587

如何正确连接TLS启用SMTP服务器,在我的情况下,使用Indy的Gmail?

How to properly connect in a TLS enable SMTP server, in my case Gmail, using Indy?

看起来像 IdSSLOpenSSLHeaders.Load 找不到以下过程的地址,其中包括:

It seems like IdSSLOpenSSLHeaders.Load could not find the address to the following procedures, among others:

  @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);

这是从 WhichFailedToLoad 返回的消息:

 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论坛中以下讨论的引用:

Here is a quote from the following discussion in the Embarcadero forums:

Indy的自定义OpenSSL DLL不再分布在任何地方(我知道
)但您可以尝试此归档下载:

Indy's custom OpenSSL DLLs are no longer distributed anywhere (that I know of), but you can try this archived download:

一些旧的Indy特定的OpenSSL DLL可用于Fulgan的。

Some old Indy-specific OpenSSL DLLs are available in Fulgan's SSL Archive folder.

10.0.52是Indy 10的过时版本。自从发行以来,Indy 10发生了很多变化。您真的应该升级到,然后您可以使用最新的OpenSSL DLL可在Fulgan的中获取。

10.0.52 is an outdated release of Indy 10. There have been a lot of changes to Indy 10 since that release. You really should upgrade to a modern Indy 10 release, and then you can use the latest OpenSSL DLLs that are available in Fulgan's SSL main folder.

这篇关于Indy 10 - IdSMTP.Connect raise“无法加载SSL库”。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-25 08:25