如何使TIdIMAP4支持socks 4/5代理?

时间:2015-06-30 13:04:34

标签: delphi indy indy10

Indy软件包的TidIMAP4客户端不支持socks 4/5代理,添加该支持的可能方法是什么?

1 个答案:

答案 0 :(得分:3)

Indy已经有一个内置框架,用于通过代理连接任何 TCP客户端组件。您只需将所需的代理组件附加到客户端组件,然后客户端将自动连接到代理并告诉它连接到哪里。如果您需要通过多个代理连接,可以链接代理组件。

Indy 10默认提供两个代理组件 - TIdSocksInfo用于SOCKS 4 / 4a / 5代理,TIdConnectThroughHttpProxy用于HTTP代理(使用HTTP CONNECT方法)。但是框架足够通用,如果您需要实现其他代理协议,则可以派生新类。

在您的情况下,在连接到服务器之前,将TIdIOHandlerStack组件分配给TIdIMAP4.IOHandler属性,然后将TIdSocksInfo组件分配给TIdIOHandlerStack.TransparentProxy属性,然后根据需要配置TIdSocksInfo。所有这些都可以在设计时或运行时完成。