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 識別情報と証明書検証ポリシーを保ったままメールサービスです。

関連記事