Thêm SOCKS vào ứng dụng khách IMAP của Indy mà không thay bộ xử lý TLS
Đặt TIdSocksInfo trên TransparentProxy của IOHandler hiện có trước Connect, và để máy chủ thư vẫn là đích.
Với một Indy 10 IMAPClient có IOHandler hiện tại bắt nguồn từ TIdIOHandlerStack, hãy gắn thông tin SOCKS trước khi gọi Connect:
ProxyInfo := TIdSocksInfo.Create(IMAPClient);
ProxyInfo.Version := svSocks5;
ProxyInfo.Host := 'proxy.example';
ProxyInfo.Port := 1080;
(IMAPClient.IOHandler as TIdIOHandlerStack).TransparentProxy := ProxyInfo;Các kiểu này đến từ IdSocks và IdIOHandlerStack. Nếu chưa có IOHandler, hãy tạo và gán trước bộ xử lý phù hợp với kết nối thư.
Giữ nguyên IOHandler SSL đã được cấu hình. Thay nó bằng một bộ xử lý stack đơn giản có thể loại bỏ TLS; TransparentProxy chỉ cung cấp thương lượng proxy, không phải TLS ngầm trên 993 hay STARTTLS trên 143.
Đoạn mã giả định SOCKS5 không xác thực. Với máy chủ thư công cộng, danh sách proxy SOCKS5 cung cấp các ứng viên; hãy xác nhận rằng điểm cuối đã chọn cho phép máy chủ và cổng IMAP cần thiết. Với tài khoản proxy, hãy cấu hình xác thực, tên người dùng và mật khẩu của TIdSocksInfo tách biệt khỏi tài khoản IMAP.
ProxyInfo.Host chỉ định bên trung gian. IMAPClient.Host vẫn là dịch vụ thư với danh tính TLS dự kiến và chính sách xác thực chứng chỉ của nó.