RAD Studio 2010用Indy 10发邮件遇“could not load SSL library”错误求助
解决Indy 10.5.5 + RAD Studio 2010发送邮件时的“could not load SSL library”错误
核心问题:OpenSSL版本不兼容
你使用的indy_openssl096.zip系列DLL版本过旧,Indy 10.5.5仅兼容OpenSSL 0.9.8分支(如0.9.8m、0.9.8y等版本),0.9.6版本完全不匹配,这是报错的主要原因。
正确的OpenSSL DLL获取与放置
- 必须下载32位版本的OpenSSL 0.9.8系列DLL(RAD Studio 2010默认编译32位程序,64位DLL无法加载),同时获取
libeay32.dll和ssleay32.dll,两个文件版本需完全一致,不能混用。 - 放置位置优先选择可执行文件所在目录(exe同文件夹),该位置系统会优先搜索,避免和系统目录中其他版本的DLL冲突。也可放到Windows的
SysWOW64(64位系统)或System32(32位系统),但不推荐。
Indy SMTP的SSL必要设置
- 确保
TIdSMTP的IOHandler属性绑定了TIdSSLIOHandlerSocketOpenSSL组件。 - 根据邮箱服务商要求设置参数:
- 谷歌邮箱:SMTP端口用465(隐式SSL)或587(STARTTLS)。用465时,
TIdSMTP.UseTLS设为utUseImplicitTLS;用587时设为utUseExplicitTLS,SSLOptions.Method选sslvTLSv1_2(谷歌要求至少TLS 1.2)。 - Naver邮箱:端口同样支持465/587,参数设置和谷歌邮箱一致。
- 谷歌邮箱:SMTP端口用465(隐式SSL)或587(STARTTLS)。用465时,
- 确认
TIdSMTP.AuthType设为satDefault,并正确填写邮箱账号和授权码(谷歌需启用应用专用密码,Naver需开启SMTP权限)。
额外验证步骤
- 用Dependency Walker工具打开你的exe文件,检查是否能找到
libeay32.dll和ssleay32.dll,以及是否存在依赖缺失。 - 确认下载的DLL未损坏,重新下载后再测试。
内容的提问来源于stack exchange,提问作者user622750
相关产品推荐
相关产品推荐

