Eman Indy-ren SMTP konexioari proxy IOHandler bat
Konektatu SOCKS edo HTTP CONNECT TIdSMTP-rekin Indy bertsio zuzenaren IOHandler propietateekin, posta eta proxy ezarpenak bereizita.
Indyn, atxiki proxya TIdSMTP-ek erabiltzen duen IOHandler-ari. Eutsi TIdSMTP.Host eta Port posta zerbitzura bideratuta. IOHandler-aren proxy osagaiak bitartekariaren helbidea ematen du eta proxy handshake-a konexio berean egiten du.
Erabiltzen duzun propietatea Indy bertsioaren araberakoa da: Indy 9-k SocksInfo eskaintzen du; Indy 10-ek TransparentProxy erabiltzen du. Egiaztatu aplikazioko osagai liburutegia, Delphi bertsioaren izenaren arabera adibide bat hautatu beharrean.
Indy 10 SOCKS5-ekin
Demagun formularioak dagoeneko osagai hauek dituela:
Smtp: TIdSMTPMailSocket: TIdIOHandlerStackSocks: TIdSocksInfo
Konektatu eta konfiguratu itzazu SMTP konexioa ireki aurretik:
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;
Portuen balioak adibideak dira. SMTP portuak erabili nahi duzun zerbitzuarekin eta TLS moduarekin bat etorri behar du. SOCKS portua proxyarena da.
Bitartekari publikoa onartzen den proba publiko baimendu baterako, SOCKS5 proxy zerrendak hautagai helbideak eskaintzen ditu. Egiaztatu hautagaiak benetako posta ostalaria eta portua onartzen dituela, eta erabili proxy autentifikaziorik gabeko adarra, aurreko proxy baten kredentzialak gorde gabe.
TIdSocksInfo svNoSocks-rekin hasten da, beraz proxy ostalariaren izena ezartzeak soilik ez du aktibatzen. Aukeratu SOCKS bertsio egokia. Proxyak SOCKS5 erabiltzaile-izena/pasahitza autentifikazioa eskatzen badu, konfiguratu autentifikazio metodoa eta kredentzialak:
Socks.Authentication := saUsernamePassword;
Socks.Username := ProxyUser;
Socks.Password := ProxyPassword;
ProxyUser eta ProxyPassword aplikazioak emandako balioak adierazten dituzte. Propietate hauek proxyaren aurrean autentifikatzen dira. Konfiguratu SMTP kontua eta bere autentifikazio metodoa bereizita posta bezeroan.
Dagoen TLS IOHandler bat mantentzea
STARTTLS edo TLS inplizitua erabiltzen duen posta bezero batek SSL gaitasuna duen IOHandler behar du. Ez ordeztu osagai hori TIdIOHandlerStack arrunt batekin proxya gehitzeko soilik.
Indy 10-en, SSL IOHandler oinarria TIdIOHandlerStack-etik dator eta haren proxy euskarria heredatzen du. MailTLS izeneko existitzen den SSL IOHandler bateragarri baterako, konexioa hau bihurtzen da:
Smtp.IOHandler := MailTLS;
MailTLS.TransparentProxy := Socks;
SMTP osagaiaren UseTLS ezarpenak posta zerbitzuaren TLS modua hautatzen du oraindik. Konfiguratu ziurtagiriaren konfiantza eta ostalari-izenaren baliozkotzea smtp.example.net-rako TLS integrazioan, ez proxy ostalariaren izenerako. Tunel bat gehitzeak ez du berez ziurtagiri baliozkotzerik ezartzen.
HTTP CONNECT proxy bat erabiltzea horren ordez
Indy 10erako, erabili TIdConnectThroughHttpProxy osagaia, IdConnectThroughHttpProxy-etik eskuragarri. Demagun formularioaren jabetzako HttpTunnel izeneko instantzia bat dagoela:
HttpTunnel.Host := 'proxy.example.net';
HttpTunnel.Port := 8080;
HttpTunnel.Enabled := True;
MailSocket.TransparentProxy := HttpTunnel;
SMTP-k MailTLS erabiltzen badu, esleitu HttpTunnel kontrolatzaile horren TransparentProxy propietateari. Posta helburua Smtp-n geratzen da.
Osagai honek HTTP CONNECT tunel bat ezartzen du eta oinarrizko proxy autentifikazioa inplementatzen du bere Username eta Password propietateen bidez. Beste autentifikazio mekanismo bat eskatzen duen proxy batek inplementazio bateragarria behar du; ez pentsa bi propietate hauek HTTP autentifikazio eskema guztiak estaltzen dituztenik.
Proxyak CONNECT baimendu behar dio posta zerbitzariaren benetako portuari ere. 443-ko web zerbitzarietara tunelatzeko baimenak ez du esan nahi 587-ko bidaltze zerbitzu batera edo 25-eko SMTP zerbitzari batera iristeko baimenik.
Indy 9 konexioa
Indy 9-k TIdIOHandlerSocket eta bere SocksInfo propietatea erabiltzen ditu. Socket9 eta Socks9 izeneko formularioaren jabetzako osagaiak direla, kableatze baliokidea hau da:
Smtp.IOHandler := Socket9;
Socket9.SocksInfo := Socks9;
Socks9.Host := 'proxy.example.net';
Socks9.Port := 1080;
Socks9.Version := svSocks5;
Bere SOCKS inplementazioak 4, 4a eta 5 bertsioak onartzen ditu. Indy 10en TransparentProxy eta HTTP CONNECT osagaiaren antolamendua ezin da zuzenean itsatsi interfaze zahar honetan.
Ez dago proxy hasierako saio-hasiera bereizirik beste TCP bezero batekin egiteko. Proxy autentifikazioa, tunelaren ezarpena eta SMTP trukea SMTP osagaiak benetan erabiltzen duen konexioari dagokio. Kableatze hori zuzena denean, hutsegitea proxy negoziazioan, SMTP agurran, TLSan edo posta autentifikazioan kokatu daiteke, ukapen bakoitza posta pasahitz oker gisa tratatu beharrean.