Agħti lill-konnessjoni SMTP ta' Indy IOHandler tal-proxy
Qabbad SOCKS jew HTTP CONNECT ma' TIdSMTP bl-użu tal-proprjetajiet IOHandler tal-verżjoni Indy t-tajba, b'konfigurazzjonijiet tal-posta u tal-proxy separati.
Fl-Indy, waħħal il-proxy mal-IOHandler li juża TIdSMTP. Żomm TIdSMTP.Host u Port indirizzati lejn is-servizz tal-posta. Il-komponent tal-proxy tal-IOHandler jipprovdi l-indirizz tal-intermedjarju u jagħmel il-handshake tal-proxy fuq l-istess konnessjoni.
Il-proprjetà li tuża tiddependi mill-verżjoni tal-Indy: Indy 9 tesponi SocksInfo; Indy 10 tuża TransparentProxy. Iċċekkja l-librerija tal-komponenti fl-applikazzjoni minflok tagħżel eżempju biss skont l-isem tar-rilaxx ta' Delphi.
Indy 10 ma' SOCKS5
Ejja ngħidu li l-formola diġà għandha dawn il-komponenti:
Smtp: TIdSMTPMailSocket: TIdIOHandlerStackSocks: TIdSocksInfo
Qabbadhom u kkonfigurahom qabel ma tiftaħ il-konnessjoni 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;
Il-valuri tal-portijiet huma eżempji. Il-port SMTP irid jaqbel mas-servizz u mal-mod TLS li biħsiebek tuża. Il-port SOCKS jappartjeni lill-proxy.
Għal test SMTP pubbliku permess fejn intermedjarju pubbliku huwa permess, il-lista tal-proxy SOCKS5 toffri indirizzi kandidati. Ikkonferma li l-kandidat jippermetti l-host u l-port tal-posta reali, u uża l-fergħa mingħajr awtentikazzjoni tal-proxy mingħajr ma żżomm kredenzjali minn proxy preċedenti.
TIdSocksInfo jibda b'svNoSocks, għalhekk li tistabbilixxi biss isem tal-host tal-proxy ma jattivahx. Agħżel il-verżjoni SOCKS xierqa. Jekk il-proxy jeħtieġ awtentikazzjoni SOCKS5 b'isem tal-utent/kelma sigrieta, ikkonfigura kemm il-metodu tal-awtentikazzjoni kif ukoll il-kredenzjali:
Socks.Authentication := saUsernamePassword;
Socks.Username := ProxyUser;
Socks.Password := ProxyPassword;
ProxyUser u ProxyPassword jirrappreżentaw valuri li jipprovdi l-applikazzjoni. Dawn il-proprjetajiet jawtentikaw mal-proxy. Ikkonfigura l-kont SMTP u l-metodu tal-awtentikazzjoni tiegħu separatament fil-klijent tal-posta.
Iż-żamma ta' IOHandler TLS eżistenti
Klijent tal-posta li juża STARTTLS jew TLS impliċitu jeħtieġ l-IOHandler tiegħu kapaċi għal SSL. Issostitwixxix dak il-komponent b'TIdIOHandlerStack sempliċi biss biex iżżid il-proxy.
Fl-Indy 10 il-bażi tal-IOHandler SSL ġejja minn TIdIOHandlerStack u tirritakta l-appoġġ tiegħu għall-proxy. Għal IOHandler SSL kompatibbli eżistenti bl-isem MailTLS, il-konnessjoni ssir:
Smtp.IOHandler := MailTLS;
MailTLS.TransparentProxy := Socks;
Is-setting UseTLS tal-komponent SMTP għadu jagħżel il-mod TLS tas-servizz tal-posta. Ikkonfigura l-fiduċja fiċ-ċertifikat u l-validazzjoni tal-isem tal-host fl-integrazzjoni TLS għal smtp.example.net, mhux għall-isem tal-host tal-proxy. Iż-żieda ta' mina ma tistabbilixxix waħedha l-validazzjoni taċ-ċertifikat.
L-użu ta' proxy HTTP CONNECT minflok
Għal Indy 10, uża komponent TIdConnectThroughHttpProxy, disponibbli minn IdConnectThroughHttpProxy. Jekk wieħed jassumi li teżisti istanza proprjetà tal-formola bl-isem HttpTunnel:
HttpTunnel.Host := 'proxy.example.net';
HttpTunnel.Port := 8080;
HttpTunnel.Enabled := True;
MailSocket.TransparentProxy := HttpTunnel;
Jekk SMTP juża MailTLS, assenja HttpTunnel lill-proprjetà TransparentProxy ta' dak il-handler minflok. Il-mira tal-posta tibqa' fuq Smtp.
Dan il-komponent jistabbilixxi mina HTTP CONNECT u jimplimenta awtentikazzjoni bażika tal-proxy permezz tal-proprjetajiet Username u Password tiegħu. Proxy li jeħtieġ mekkaniżmu ta' awtentikazzjoni ieħor jeħtieġ implimentazzjoni kompatibbli; tassumix li dawn iż-żewġ proprjetajiet jipprovdu l-iskemi kollha tal-awtentikazzjoni HTTP.
Il-proxy għandu wkoll jippermetti CONNECT għall-port reali tas-server tal-posta. Il-permess li tagħmel mina lejn servirs tal-web fuq 443 mhuwiex permess li tasal għal servizz ta' sottomissjoni fuq 587 jew server SMTP fuq 25.
Il-konnessjoni Indy 9
Indy 9 juża TIdIOHandlerSocket u l-proprjetà SocksInfo tiegħu. B'komponenti proprjetà tal-formola bl-isem Socket9 u Socks9, il-wiring ekwivalenti huwa:
Smtp.IOHandler := Socket9;
Socket9.SocksInfo := Socks9;
Socks9.Host := 'proxy.example.net';
Socks9.Port := 1080;
Socks9.Version := svSocks5;
L-implimentazzjoni SOCKS tiegħu tappoġġja l-verżjonijiet 4, 4a u 5. L-arranġament TransparentProxy u komponent HTTP CONNECT tal-Indy 10 ma jistax jiġi pejstjat direttament f'dan l-interface eqdem.
M'hemmx login preliminari tal-proxy separat li jsir b'klijent TCP ieħor. L-awtentikazzjoni tal-proxy, is-setting tal-mina u l-iskambju SMTP għandhom jappartjenu lill-konnessjoni li l-komponent SMTP attwalment juża. Meta dan il-wiring ikun korrett, falliment jista' jiġi lokalizzat fin-negozjati tal-proxy, fit-tislima SMTP, fit-TLS jew fl-awtentikazzjoni tal-posta, minflok ma kull rifjut jitqies bħala password tal-posta ħażina.