我有这个'套接字错误10060 - 连接超时'尝试使用TIDSMTP在Delphi XE应用程序上发送电子邮件时。相同的代码适用于同一台机器上的Delphi 2007应用程序。未安装防火墙或防病毒软件。两个应用程序使用相同的DLL(libeay32.dll / ssleay32.dll)。
这是我的代码:
idsmtp1.host = 'xxxx';
idsmtp1.port = 465;
idsmtp1.username = 'x';
idsmtp1.password = 'x';
with ssl1 do
begin
SSLOptions.Method := sslvTLSv1;
SSLOptions.VerifyMode := [];
SSLOptions.VerifyDepth := 0;
Destination := 'smtp.gmail.com:465';
host := 'smtp.gmail.com';
//OnStatusInfo := ssl1statusinfo;
end;
idsmtp1.iohandler := ssl1;
idsmtp1.usetls := utUseImplicitTLS;
idsmtp1.UseEhlo := true;
idsmtp1.connect; // here the exception is throw
答案 0 :(得分:0)
我不知道为什么,但添加了一些“暂停”#39;在事件' onStatusInfo' TIdSSLIOHandlerSocketOpenSSL解决了这个问题。这是添加的代码:
procedure ssl1StatusInfo(Msg: string);
begin
sleep(500);
application.processmessages;
end;
如果没有此代码,我总会得到“套接字错误10060 - 连接超时”#。