Añadir SOCKS a un cliente IMAP de Indy sin reemplazar su manejador TLS
Establezca TIdSocksInfo en TransparentProxy del IOHandler existente antes de Connect, dejando el servidor de correo como destino.
Para un Indy 10 IMAPClient con un IOHandler existente derivado de TIdIOHandlerStack, adjunte la información SOCKS antes de llamar a Connect:
ProxyInfo := TIdSocksInfo.Create(IMAPClient);
ProxyInfo.Version := svSocks5;
ProxyInfo.Host := 'proxy.example';
ProxyInfo.Port := 1080;
(IMAPClient.IOHandler as TIdIOHandlerStack).TransparentProxy := ProxyInfo;Los tipos provienen de IdSocks y IdIOHandlerStack. Si aún no existe un IOHandler, cree y asigne primero el manejador adecuado para la conexión de correo.
Conserve un IOHandler SSL ya configurado. Sustituirlo por un manejador stack simple puede eliminar TLS; TransparentProxy solo aporta la negociación del proxy, no TLS implícito en el 993 ni STARTTLS en el 143.
El fragmento asume SOCKS5 sin autenticación. Para un servidor de correo público, la lista de proxies SOCKS5 ofrece candidatos; confirme que el extremo elegido permite el host y el puerto IMAP requeridos. Para una cuenta de proxy, configure la autenticación, el usuario y la contraseña de TIdSocksInfo por separado de la cuenta IMAP.
ProxyInfo.Host nombra al intermediario. IMAPClient.Host sigue siendo el servicio de correo con su identidad TLS prevista y su política de validación de certificados.