הוספת SOCKS ללקוח IMAP של Indy בלי להחליף את מטפל ה-TLS שלו
הגדירו TIdSocksInfo על TransparentProxy של ה-IOHandler הקיים לפני Connect, והשאירו את שרת הדואר כיעד.
עבור Indy 10 IMAPClient עם IOHandler קיים שנגזר מ-TIdIOHandlerStack, צרפו את פרטי SOCKS לפני קריאה ל-Connect:
ProxyInfo := TIdSocksInfo.Create(IMAPClient);
ProxyInfo.Version := svSocks5;
ProxyInfo.Host := 'proxy.example';
ProxyInfo.Port := 1080;
(IMAPClient.IOHandler as TIdIOHandlerStack).TransparentProxy := ProxyInfo;הטיפוסים מגיעים מ-IdSocks ומ-IdIOHandlerStack. אם עדיין אין IOHandler, צרו והקצו תחילה את המטפל המתאים לחיבור הדואר.
שמרו על IOHandler מסוג SSL שכבר מוגדר. החלפתו במטפל stack פשוט עלולה להסיר TLS; TransparentProxy מספק רק משא ומתן של פרוקסי, לא TLS משתמע ב-993 ולא STARTTLS ב-143.
הקטע מניח SOCKS5 ללא אימות. עבור שרת דואר ציבורי, רשימת פרוקסי SOCKS5 מספקת מועמדים; ודאו שנקודת הקצה שנבחרה מתירה את מארח ה-IMAP והפורט הנדרשים. עבור חשבון פרוקסי, הגדירו את האימות, שם המשתמש והסיסמה של TIdSocksInfo בנפרד מחשבון ה-IMAP.
ProxyInfo.Host מציין את המתווך. IMAPClient.Host נשאר שירות הדואר עם זהות ה-TLS המיועדת ומדיניות אימות התעודות שלו.