Delphi XE Indy TIDSMTP和gmail:套接字错误10060

时间:2015-10-05 17:40:21

标签: delphi gmail indy

我有这个'套接字错误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 

1 个答案:

答案 0 :(得分:0)

我不知道为什么,但添加了一些“暂停”#39;在事件' onStatusInfo' TIdSSLIOHandlerSocketOpenSSL解决了这个问题。这是添加的代码:

procedure ssl1StatusInfo(Msg: string);
begin
sleep(500);
application.processmessages;
end;

如果没有此代码,我总会得到“套接字错误10060 - 连接超时”#。