我使用的最新快照印(昨天安装)和最新的SSL库。

在尝试使用idSMTP,首次将组件连接到发送邮件,我得到一个异常:

  

便无法加载SSL库

。有趣的是,重试工作的始终。调试我发现,这个问题是在IsSSLOpenSSLHeader,功能Loaad:布尔,线

@OpenSSL_add_all_algorithms := LoadFunctionCLib('OpenSSL_add_all_algorithms');

为什么会失败的第一次,而不是第二仍然是一个谜给我,但我去调查之前,我想因为如果有人知道解决这个问题。

有帮助吗?

解决方案

您正在使用的代码是不是最新的快照。该bug几个星期前是固定的。你引用的线是不是在最新的代码,它已被替换为以下内容:

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

其他提示

我使用的Delphi XE-1在Win 7/64,与由缺省安装在SSL和印。这个星期,我不得不做一些工作,SMTP和SSL,和我遇到了你报了同样的问题。我们的应用程序有些复杂,已经是生活和部署在几个地点,并在代码中使用了印在几个点,所以在安装印的新版本和重建等,不是很可口。

由于问题只出现在第一遍中,我通过一些代码的追踪,并用这种简单的,无痛的解决方法提出了:

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

一旦你调用connnect然后disconnect,SSL库被加载,等你的第二个呼叫connect你是好去。

工作正常。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top