Дајте Indy SMTP вези proxy IOHandler
Повежите SOCKS или HTTP CONNECT са TIdSMTP користећи IOHandler својства исправне верзије Indyja, са одвојеним подешавањима поште и proxyja.
У Indyju повежите proxy са IOHandlerom који користи TIdSMTP. Држите TIdSMTP.Host и Port усмерене на поштанску услугу. Proxy компонента IOHandlera даје адресу посредника и обавља proxy руковање на истој вези.
Својство које користите зависи од верзије Indyja: Indy 9 излаже SocksInfo; Indy 10 користи TransparentProxy. Проверите библиотеку компоненти у апликацији уместо да пример бирате само по називу Delphi издања.
Indy 10 са SOCKS5
Претпоставимо да формулар већ поседује ове компоненте:
Smtp: TIdSMTPMailSocket: TIdIOHandlerStackSocks: TIdSocksInfo
Повежите их и конфигуришите пре отварања SMTP везе:
Smtp.Host := 'smtp.example.net';
Smtp.Port := 587;
Smtp.IOHandler := MailSocket;
Socks.Host := 'proxy.example.net';
Socks.Port := 1080;
Socks.Version := svSocks5;
MailSocket.TransparentProxy := Socks;
Вредности портова су примери. SMTP порт мора да одговара услузи и TLS режиму који намеравате да користите. SOCKS порт припада proxyju.
За дозвољени јавни SMTP тест где је јавни посредник дозвољен, листа SOCKS5 proxyja нуди кандидат адресе. Потврдите да кандидат дозвољава стварни поштански хост и порт и користите грану без proxy аутентификације, без задржавања акредитива из ранијег proxyja.
TIdSocksInfo почиње са svNoSocks, па само постављање имена proxy хоста не активира га. Изаберите одговарајућу верзију SOCKS-а. Ако proxy захтева SOCKS5 аутентификацију корисничким именом/лозинком, конфигуришите и метод аутентификације и акредитиве:
Socks.Authentication := saUsernamePassword;
Socks.Username := ProxyUser;
Socks.Password := ProxyPassword;
ProxyUser и ProxyPassword представљају вредности које даје апликација. Та својства се аутентификују према proxyju. Конфигуришите SMTP налог и његов метод аутентификације одвојено у поштанском клијенту.
Задржавање постојећег TLS IOHandlera
Поштанском клијенту који користи STARTTLS или имплицитни TLS потребан је IOHandler способан за SSL. Не замењујте ту компоненту обичним TIdIOHandlerStack само да бисте додали proxy.
У Indyju 10 SSL IOHandler основа потиче од TIdIOHandlerStack и наслеђује његову proxy подршку. За постојећи компатибилни SSL IOHandler назван MailTLS веза постаје:
Smtp.IOHandler := MailTLS;
MailTLS.TransparentProxy := Socks;
Поставка UseTLS SMTP компоненте и даље бира TLS режим поштанске услуге. Конфигуришите поверење у сертификат и проверу имена хоста у TLS интеграцији за smtp.example.net, а не за име proxy хоста. Додавање тунела само по себи не успоставља проверу сертификата.
Коришћење HTTP CONNECT proxyja уместо тога
За Indy 10 користите компоненту TIdConnectThroughHttpProxy, доступну из IdConnectThroughHttpProxy. Уз претпоставку да постоји постојећа инстанца у власништву формулара названа HttpTunnel:
HttpTunnel.Host := 'proxy.example.net';
HttpTunnel.Port := 8080;
HttpTunnel.Enabled := True;
MailSocket.TransparentProxy := HttpTunnel;
Ако SMTP користи MailTLS, доделите HttpTunnel својству TransparentProxy тог руковаоца. Поштански циљ остаје на Smtp.
Ова компонента успоставља HTTP CONNECT тунел и имплементира основну proxy аутентификацију кроз своја својства Username и Password. Proxy који захтева други механизам аутентификације треба компатибилну имплементацију; не претпостављајте да та два својства пружају све HTTP шеме аутентификације.
Proxy такође мора дозволити CONNECT на стварни порт поштанског сервера. Дозвола за тунел до веб сервера на 443 не значи дозволу за досезање услуге предаје на 587 или SMTP сервера на 25.
Веза у Indyju 9
Indy 9 користи TIdIOHandlerSocket и његово својство SocksInfo. Уз компоненте у власништву формулара назване Socket9 и Socks9, еквивалентно повезивање је:
Smtp.IOHandler := Socket9;
Socket9.SocksInfo := Socks9;
Socks9.Host := 'proxy.example.net';
Socks9.Port := 1080;
Socks9.Version := svSocks5;
Његова SOCKS имплементација подржава верзије 4, 4a и 5. Распоред TransparentProxy и HTTP CONNECT компоненте из Indyja 10 не може се једноставно залепити у ово старије сучеље.
Нема засебне претходне пријаве на proxy коју треба обавити другим TCP клијентом. Proxy аутентификација, постављање тунела и SMTP размена морају припадати вези коју SMTP компонента стварно користи. Кад је то повезивање исправно, квар се може лоцирати на proxy преговарању, SMTP поздраву, TLS-у или поштанској аутентификацији, уместо да се свако одбијање сматра лошом поштанском лозинком.