TLS 핸들러를 교체하지 않고 Indy IMAP 클라이언트에 SOCKS 추가하기
Connect 전에 기존 IOHandler의 TransparentProxy에 TIdSocksInfo를 설정하고 메일 서버를 목적지로 그대로 둡니다.
Indy 10 IMAPClient에서 기존 IOHandler가 TIdIOHandlerStack에서 파생된 경우 Connect를 호출하기 전에 SOCKS 정보를 연결합니다.
ProxyInfo := TIdSocksInfo.Create(IMAPClient);
ProxyInfo.Version := svSocks5;
ProxyInfo.Host := 'proxy.example';
ProxyInfo.Port := 1080;
(IMAPClient.IOHandler as TIdIOHandlerStack).TransparentProxy := ProxyInfo;타입은 IdSocks와 IdIOHandlerStack에서 가져옵니다. 아직 IOHandler가 없다면 메일 연결에 맞는 핸들러를 먼저 만들고 할당하십시오.
이미 구성된 SSL IOHandler를 유지하십시오. 이를 단순 stack 핸들러로 바꾸면 TLS가 사라질 수 있습니다. TransparentProxy은 프록시 협상만 제공하며 993의 암시적 TLS나 143의 STARTTLS를 제공하지 않습니다.
이 조각은 인증 없는 SOCKS5를 가정합니다. 공용 메일 서버라면 SOCKS5 프록시 목록이 후보를 제공합니다. 선택한 엔드포인트가 필요한 IMAP 호스트와 포트를 허용하는지 확인하십시오. 프록시 계정이라면 TIdSocksInfo의 인증, 사용자 이름, 비밀번호를 IMAP 계정과 별도로 구성하십시오.
ProxyInfo.Host은 중계자를 지정합니다. IMAPClient.Host는 의도한 TLS ID와 인증서 검증 정책을 유지한 채 메일 서비스로 남습니다.