运行代码以连接到TLama提供的Gmail How to login to a Gmail account and get number of messages in a mailbox with TIdIMAP4?它在Delphi 5和Delphi 2007中运行得非常好。
我在Delphi XE3上尝试相同的代码,但奇怪的是我在IDE中或者直接从文件资源管理器启动\ win32 \ debug目录中生成的exe时出现'Socket Error#10061 Connection refused'错误。如果我启动\ Win32 \ release目录中生成的.exe,它可以正常工作!
我试图将ssleay32.dll和libeay32.dll放在所有类型的目录中,但它仍然不起作用,我不确定它与此有关。
Indy on Delphi XE3是10.5.9.0版。 (我的Delphi XE3 Update 1最初附带的内容)。
任何帮助都非常感谢!
答案 0 :(得分:0)
套接字错误10061表示两件事之一:
您尝试连接到一个完全没有侦听连接的IP /端口。
您尝试连接到正在侦听连接的IP /端口,但在该特定时刻没有任何可用的插槽来接受新的客户端连接。
无法区分客户端的两种可能性。
Indy如何在Debug和Release版本中管理其套接字应该没有区别。您看到的问题与DLL无关,因为在首先建立基础套接字连接之前不会调用它们(但是,您可以使用IdOpenSSLSetLibPath()
单元中的Indy IdSSLOpenSSLHeaders
函数来告诉它如果需要的话,Indy所在的位置。
在致电Port
时仔细检查Connect()
媒体资源。设置UseTLS
属性实际上可以更改Port
值。如果您需要设置这两个属性,请先设置UseTLS
,然后设置Port
,如果您需要使用不同的值,那么Indy指定的值。