2014-02-26 50 views
12

這裏是我的配置:Indy 10 - IdSMTP.Connect raise「無法加載SSL庫」。

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

我從here下載了OpenSSL的,既libeay32.dllssleay32.dll在我申請的同一文件夾中。

的印版是:10.0.52

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

telnet smtp.gmail.com 587 

如何在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); 

這是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 
+0

我正在關注此[教程](http://www.marcocantu.com/tips/oct06_gmail.html) – EProgrammerNotFound

+0

我相信問題是dll的正確版本。我需要測試每一個嗎? – EProgrammerNotFound

+2

這是關於您使用的相同版本的['topic'](https://forums.embarcadero.com/message.jspa?messageID=406858)。 – TLama

回答

15

這裏是從以下報價在Embarcadero論壇討論:

OpenSSL Version to work with indy 10.0.52

印8,9,和10月初的版本使用定製的OpenSSL DLL文件,因爲 的OpenSSL沒有揭穿一切印需要訪問,所以印不得不添加 一些自定義功能的DLL文件。後來Indy 10版本切換到官方OpenSSL DLLs的 。

Indy的定製的OpenSSL DLL文件不再在任何地方分佈(即我所知道的 ),但你可以試試這個存檔下載:

http://web.archive.org/web/20071022121646/http://www.intelicom.si/www.nsf/2434100e396ad3f3c125705100369374/d6b8e150fe453facc1257082006fc8b9/$FILE/indy_openssl096g.zip

一些舊印特定的OpenSSL DLL是可用富爾根的SSL Archive folder

10.0.52是Indy 10的過時版本。自發布以來,Indy 10發生了很多變化。您真的應該升級到modern Indy 10 release,然後您可以使用Fulgan的SSL main folder中提供的最新OpenSSL DLL。

+0

再次,非常感謝。我現在正在升級到更新的版本 – EProgrammerNotFound