【发布时间】:2012-05-04 12:28:54
【问题描述】:
带有 Indy 10.5.8.0 的 Delphi 7。
如果这是重复之前提出的问题,我深表歉意,但我无法解决这个问题。
我正在使用 Indy TidMessageBuilderHTML 发送带有嵌入图像的 HTML 电子邮件来构建我的 html 电子邮件。这非常酷,到目前为止效果很好。
我现在的问题是迎合需要 SSL/TLS 身份验证的 SMTP 服务器。我对 OPENSSL DLL 文件有很多问题,现在看来 32 位版本不能在 64 位等上运行。我想要一个避免使用 DLL 文件的解决方法。 (最好我需要将其保留为单个 exe。应用程序)。
然后我的问题是:我想按原样使用 Indy V10,而不必发送 OPENSSL dll。有没有办法做到这一点?是否没有支持 Indy ssl (TIdSSLIOHandlerSocketOpenSSL) 的可用 delphi SSL 库?
另外,我愿意接受其他建议,这些建议将有助于我使用嵌入图像的 html 电子邮件。谢谢。
【问题讨论】:
-
如果你想“一切”到你的exe文件中,你需要嵌入dll,在你的dpr文件的uses子句中的所有其他单元之前,添加一个单元,它的唯一目的是提取dll从应用程序初始化。您的 dll 在 x64 上不起作用似乎很奇怪...
-
SSL 的静态链接似乎是没人做的事情,可能是因为 C 库依赖太复杂了。嵌入然后加载 SSL dll 似乎是您唯一的选择,是的,32 位 DLL 将在 64 位窗口上工作。为什么不呢?
-
只是一个旁注。您可以从
here获得Indy兼容的OpenSSL库。在那里您还可以找到 64 位版本的库。 -
谢谢!我的挫败感战胜了我。测试电脑上的其他应用程序安装了不同版本的 dll。我不知道使用的是哪一个,但现在正确的版本位于我的程序文件夹中,根据我的理解,这是优先级 1 的搜索路径。这行得通。我将运送 DLL。再次感谢潮流引领者!
-
我们的 SecureBlackbox 的 SSLBlackbox 包(参见 eldos.com/sbb/delphi-ssl.php )提供 SSL/TLS 的本机实现(包括 OpenSSL 中缺少的功能)并具有 Indy 的 IOHandler 类