当我将 ConnectTimeout 设置为 IdSMTP(例如 30 秒)并且 SMTP 服务器不可用时,它从 SMTP 服务器起飞大约 105 秒。
这是版本 10 - *250.bpl,OpenSSL v1.0.2 中的 Indy 组件。
使用 IdFTP ConnectTimeout 工作没有任何问题。
哪里可能有错误?
...
IdOpenSSLSetLibPath(FDocumentsPath);
SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
SMTP:= TIdSMTP.Create(nil);
MSG:= TIdMessage.Create(nil);
try
SSLHandler.SSLOptions.Method:= sslvSSLv23;
SSLHandler.SSLOptions.Mode := sslmClient;
SMTP.IOHandler := SSLHandler;
SMTP.UseTLS:= utUseImplicitTLS;
SMTP.AuthType:= satDefault;
SMTP.Port:= 465;
SMTP.Host:= xxx.xxx.xxx.xxx;
SMTP.Username:= xxxxx;
SMTP.Password:= xxxxx;
SMTP.ConnectTimeout:= 30000;
SMTP.ReadTimeout:= 30000;
try
SMTP.Connect;
except
end;
...
finally
SMTP.Disconnect;
UnLoadOpenSSLLibrary;
FreeAndNil(MSG);
FreeAndNil(SSLHandler);
FreeAndNil(SMTP);
end;