Ii sii isku xirka SMTP ee Indy IOHandler borotokool
Ku xidh SOCKS ama HTTP CONNECT TIdSMTP adigoo isticmaalaya sifooyinka IOHandler ee nooca Indy saxda ah, iyadoo dejinta iimaylka iyo borotokoolka gaar ah.
Indy gudaha, ku xidh borotokoolka IOHandler-ka ay isticmaasho TIdSMTP. Ku hay TIdSMTP.Host iyo Port adeegga iimaylka. Qaybta borotokoolka ee IOHandler waxay bixisaa cinwaanka dhexdhexaadiyaha waxayna ku sameysaa gacan-qaadka borotokoolka isla isku xirkaas.
Sifada aad isticmaasho waxay ku xiran tahay nooca Indy: Indy 9 waxay soo bandhigtaa SocksInfo; Indy 10 waxay isticmaashaa TransparentProxy. Baadh maktabadda qaybaha ee barnaamijka halkii aad tusaale ka dooran lahayd magaca daabacaadda Delphi oo keliya.
Indy 10 oo leh SOCKS5
Ka soo qaad in foomku hore u leeyahay qaybahan:
Smtp: TIdSMTPMailSocket: TIdIOHandlerStackSocks: TIdSocksInfo
Ku xidh oo habee iyaga ka hor intaadan furin isku xirka 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;
Qiimaha dekedaha waa tusaale. Dekedda SMTP waa inay la socotaa adeegga iyo habka TLS ee aad dooneyso inaad isticmaasho. Dekedda SOCKS waxaa leh borotokoolka.
Imtixaan SMTP dadweyne oo la ogol yahay halka dhexdhexaadiye dadweyne la ogol yahay, liiska borotokoolka SOCKS5 wuxuu bixiyaa cinwaanno mushahar. Xaqiiji in musharihku ogol yahay martigeliyaha iimaylka iyo dekedda dhabta ah, oo isticmaal laanta aan lahayn xaqiijinta borotokoolka adigoon hayn aqoonsiga borotokool hore.
TIdSocksInfo wuxuu ku bilaabmaa svNoSocks, sidaas darteed dejinta magaca martigeliyaha borotokoolka oo keliya ma shaqeysiiso. Dooro nooca SOCKS ku habboon. Haddii borotokoolku u baahan yahay xaqiijinta SOCKS5 ee magaca isticmaalaha/furaha sirta ah, habee habka xaqiijinta iyo aqoonsiga labadaba:
Socks.Authentication := saUsernamePassword;
Socks.Username := ProxyUser;
Socks.Password := ProxyPassword;
ProxyUser iyo ProxyPassword waxay matalaan qiimaha uu barnaamijku bixiyo. Sifooyinkani waxay ku xaqiijiyaan borotokoolka. Habee akoonka SMTP iyo habka xaqiijintiisa si gaar ah macmiilka iimaylka.
Haynta IOHandler TLS jira
Macmiil iimayl oo isticmaala STARTTLS ama TLS dadban wuxuu u baahan yahay IOHandler-kiisa awood u leh SSL. Ha ku beddelin qaybtaas TIdIOHandlerStack caadi ah kaliya si aad u kordhiso borotokoolka.
Indy 10 gudaheeda saldhigga IOHandler SSL wuxuu ka yimaadaa TIdIOHandlerStack wuxuuna dhaxlaa taageeradiisa borotokoolka. IOHandler SSL ku habboon oo jira oo la yiraahdo MailTLS, isku xirku wuxuu noqonayaa:
Smtp.IOHandler := MailTLS;
MailTLS.TransparentProxy := Socks;
Dejinta UseTLS ee qaybta SMTP wali waxay doorataa habka TLS ee adeegga iimaylka. Habee kalsoonida shahaadada iyo xaqiijinta magaca martigeliyaha isku-dhafka TLS ee smtp.example.net, ma aha magaca martigeliyaha borotokoolka. Ku darista tunnel si keligeed ma dhisaan xaqiijinta shahaadada.
Isticmaalka borotokool HTTP CONNECT halkeeda
Indy 10, isticmaal qaybta TIdConnectThroughHttpProxy, oo laga heli karo IdConnectThroughHttpProxy. Adoo ka soo qaadanaya inuu jiro tusaale hore u leh foomka oo la yiraahdo HttpTunnel:
HttpTunnel.Host := 'proxy.example.net';
HttpTunnel.Port := 8080;
HttpTunnel.Enabled := True;
MailSocket.TransparentProxy := HttpTunnel;
Haddii SMTP isticmaalo MailTLS, u qoondee HttpTunnel sifada TransparentProxy ee maamulahaas halkeeda. Bartilmaameedka iimaylku wuxuu ku sii ahaanayaa Smtp.
Qaybtani waxay dhistaa tunnel HTTP CONNECT waxayna fulisaa xaqiijinta borotokoolka aasaasiga ah iyada oo u maraysa sifooyinka Username iyo Password. Borotokool u baahan hab xaqiijin kale wuxuu u baahan yahay fulin ku habboon; ha u qaadan in labadan sifo ay bixiyaan dhammaan qorshayaasha xaqiijinta HTTP.
Borotokoolku waa inuu kaloo ogolaadaa CONNECT ee dekedda dhabta ah ee serverka iimaylka. Ogolaanshaha tunnel ee servers web ee 443 ma tilmaamayso ogolaansho lagu gaaro adeeg gudbin oo 587 ah ama server SMTP oo 25 ah.
Isku xirka Indy 9
Indy 9 wuxuu isticmaalaa TIdIOHandlerSocket iyo sifadiisa SocksInfo. Iyadoo qaybaha foomka la yiraahdo Socket9 iyo Socks9, isku xirka u dhigma waa:
Smtp.IOHandler := Socket9;
Socket9.SocksInfo := Socks9;
Socks9.Host := 'proxy.example.net';
Socks9.Port := 1080;
Socks9.Version := svSocks5;
Fulintiisa SOCKS waxay taageertaa noocyada 4, 4a iyo 5. Habaynta TransparentProxy iyo qaybta HTTP CONNECT ee Indy 10 si toos ah looma dhajin karo isdhexgalka duugan.
Ma jiro login borotokool horudhac ah oo gaar ah oo lagu sameeyo macmiil TCP kale. Xaqiijinta borotokoolka, dejinta tunnelka iyo is-weydaarsiga SMTP waa inay ka tirsanaadaan isku xirka uu qaybta SMTP dhab ahaan isticmaalo. Marka isku xirkaas sax yahay, guuldarradu waxay ku dhacdaa gorgortanka borotokoolka, salaanta SMTP, TLS ama xaqiijinta iimaylka, halkii aan ka dhigi lahayn diidmo kasta furaha sirta iimayl khaldan.