Menambahkan SOCKS ke Klien IMAP Indy Tanpa Mengganti Handler TLS-nya
Setel TIdSocksInfo pada TransparentProxy IOHandler yang ada sebelum Connect, dan biarkan server mail tetap menjadi tujuan.
Untuk Indy 10 IMAPClient dengan IOHandler yang ada dan berasal dari TIdIOHandlerStack, lampirkan informasi SOCKS sebelum memanggil Connect:
ProxyInfo := TIdSocksInfo.Create(IMAPClient);
ProxyInfo.Version := svSocks5;
ProxyInfo.Host := 'proxy.example';
ProxyInfo.Port := 1080;
(IMAPClient.IOHandler as TIdIOHandlerStack).TransparentProxy := ProxyInfo;Tipe-tipe berasal dari IdSocks dan IdIOHandlerStack. Jika belum ada IOHandler, buat dan tetapkan dulu handler yang sesuai untuk koneksi mail.
Pertahankan IOHandler SSL yang sudah dikonfigurasi. Menggantinya dengan handler stack biasa dapat menghapus TLS; TransparentProxy hanya menyediakan negosiasi proxy, bukan TLS implisit pada 993 atau STARTTLS pada 143.
Fragmen ini mengasumsikan SOCKS5 tanpa autentikasi. Untuk server mail publik, daftar proxy SOCKS5 menyediakan kandidat; pastikan endpoint yang dipilih mengizinkan host dan port IMAP yang diperlukan. Untuk akun proxy, konfigurasikan autentikasi, nama pengguna, dan kata sandi TIdSocksInfo secara terpisah dari akun IMAP.
ProxyInfo.Host menamai perantara. IMAPClient.Host tetap menjadi layanan mail dengan identitas TLS yang dimaksudkan dan kebijakan validasi sertifikatnya.