我在使用Delphi XE应用程序发送电子邮件时,遇到了“Socket Error 10060-连接超时”的问题。但是,在同一台计算机上的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
ssl1.Destination
和ssl1.Host
。Connect()
会自动为您分配它们。除此之外,尝试在设置idsmtp1.UseTLS
后再设置idsmtp1.Port
。设置UseTLS
可能会更改Port
,因此您需要确保您选择的端口实际上被使用。如果这不起作用,请尝试在端口 587 上使用utUseExplicitTLS
。 - Remy Lebeau