Indy دا، proxy نى TIdSMTP ئىشلىتىدىغان IOHandler غا باغلاڭ. TIdSMTP.Host ۋە Port نى ئېلخەت مۇلازىمىتىگە قاراتقان ھالەتتە ساقلاڭ. IOHandler نىڭ proxy زاپچاسى ۋاسىتىچىنىڭ ئادرېسىنى تەمىنلەيدۇ ۋە proxy قول ئېلىشىشنى شۇ ئۇلىنىشتا ئېلىپ بارىدۇ.

ئىشلىتىدىغان خاسلىق Indy نەشرىگە باغلىق: Indy 9 SocksInfo نى تەمىنلەيدۇ؛ Indy 10 TransparentProxy نى ئىشلىتىدۇ. پەقەت Delphi نەشرىنىڭ نامىغا قاراپ مىسال تاللىماي، پروگراممىدىكى زاپچاس ئامبارىنى تەكشۈرۈڭ.

SOCKS5 بىلەن Indy 10

فورمىدا بۇ زاپچاسلار ئاللىبۇرۇن بار دەپ پەرەز قىلايلى:

  • Smtp: TIdSMTP
  • MailSocket: TIdIOHandlerStack
  • Socks: 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 پورتى proxy غا تەۋە.

ئاممىۋى ۋاسىتىچىگە رۇخسەت قىلىنغان رۇخسەتلىك ئاممىۋى SMTP سىنىقى ئۈچۈن SOCKS5 proxy تىزىملىكى نامزات ئادرېسلارنى تەمىنلەيدۇ. نامزاتنىڭ ھەقىقىي ئېلخەت ساھىبخانى ۋە پورتىغا رۇخسەت قىلىدىغانلىقىنى جەزملەشتۈرۈڭ، ئالدىنقى proxy نىڭ شەخسىي ئۇچۇرلىرىنى ساقلىماستىن proxy دەلىللەشسىز شاخنى ئىشلىتىڭ.

TIdSocksInfo svNoSocks بىلەن باشلىنىدۇ، شۇڭا پەقەت proxy ساھىبخان نامىنى تەڭشەش ئۇنى ئاكتىپلىمايدۇ. مۇۋاپىق SOCKS نەشرىنى تاللاڭ. ئەگەر proxy SOCKS5 ئىشلەتكۈچى نامى/پارول دەلىللەشنى تەلەپ قىلسا، دەلىللەش ئۇسۇلى ۋە شەخسىي ئۇچۇرلارنىڭ ھەر ئىككىسىنى سەپلەڭ:

Socks.Authentication := saUsernamePassword;
Socks.Username := ProxyUser;
Socks.Password := ProxyPassword;

ProxyUser ۋە ProxyPassword پروگرامما تەمىنلىگەن قىممەتلەرنى كۆرسىتىدۇ. بۇ خاسلىقلار proxy غا دەلىللەيدۇ. SMTP ھېساباتى ۋە ئۇنىڭ دەلىللەش ئۇسۇلىنى ئېلخەت خېرىدارىدا ئايرىم سەپلەڭ.

مەۋجۇت TLS IOHandler نى ساقلاش

STARTTLS ياكى يوشۇرۇن TLS ئىشلىتىدىغان ئېلخەت خېرىدارى SSL غا قادىر IOHandler غا ئېھتىياجلىق. پەقەت proxy قوشۇش ئۈچۈن بۇ زاپچاسنى ئاددىي TIdIOHandlerStack بىلەن ئالماشتۇرماڭ.

Indy 10 دا SSL IOHandler ئاساسى TIdIOHandlerStack دىن كېلىدۇ ۋە ئۇنىڭ proxy قوللىشىنى مىراس ئالىدۇ. MailTLS دەپ ئاتىلىدىغان مەۋجۇت ماس SSL IOHandler ئۈچۈن ئۇلىنىش مۇنداق بولىدۇ:

Smtp.IOHandler := MailTLS;
MailTLS.TransparentProxy := Socks;

SMTP زاپچاسىنىڭ UseTLS تەڭشىكى يەنىلا ئېلخەت مۇلازىمىتىنىڭ TLS ھالىتىنى تاللايدۇ. گۇۋاھنامە ئىشەنچى ۋە ساھىبخان نامىنى دەلىللەشنى smtp.example.net ئۈچۈن TLS بىرلەشتۈرۈشىدە سەپلەڭ، proxy ساھىبخان نامى ئۈچۈن ئەمەس. تونېل قوشۇش ئۆزى گۇۋاھنامە دەلىللەشنى ئورنىتمايدۇ.

ئۇنىڭ ئورنىغا HTTP CONNECT proxy ئىشلىتىش

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 تونېلىنى قۇرۇپ، Username ۋە Password خاسلىقلىرى ئارقىلىق ئاساسىي proxy دەلىللەشنى ئەمەلگە ئاشۇرىدۇ. باشقا دەلىللەش مېخانىزمى تەلەپ قىلىدىغان proxy ماس ئىجرا قىلىشقا ئېھتىياجلىق؛ بۇ ئىككى خاسلىق بارلىق HTTP دەلىللەش لايىھەلىرىنى تەمىنلەيدۇ دەپ پەرەز قىلماڭ.

proxy يەنە ئېلخەت مۇلازىمېتىرىنىڭ ھەقىقىي پورتىغا CONNECT قىلىشقا رۇخسەت قىلىشى كېرەك. 443 دىكى تور مۇلازىمېتىرلىرىغا تونېل قىلىش رۇخسىتى 587 دىكى يوللاش مۇلازىمىتىگە ياكى 25 دىكى SMTP مۇلازىمېتىرىغا يېتىش رۇخسىتىنى كۆرسەتمەيدۇ.

Indy 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 نەشرىلىرىنى قوللايدۇ. Indy 10 نىڭ TransparentProxy ۋە HTTP CONNECT زاپچاس تەرتىپىنى بۇ كونا كۆرۈنمە يۈزگە بىۋاسىتە چاپلىغىلى بولمايدۇ.

باشقا TCP خېرىدارى بىلەن قىلىنىدىغان ئايرىم ئالدىنقى proxy كىرىش يوق. proxy دەلىللەش، تونېل تەييارلاش ۋە SMTP ئالماشتۇرۇش SMTP زاپچاسى ھەقىقەتەن ئىشلىتىدىغان ئۇلىنىشقا تەۋە بولۇشى كېرەك. بۇ ئۇلاش توغرا بولسا، مەغلۇبىيەتنى proxy سۆھبىتى، SMTP سالاملىشىش، TLS ياكى ئېلخەت دەلىللەشتە بايقىغىلى بولىدۇ، ھەر بىر رەتنى خاتا ئېلخەت پارولى دەپ قارىغاننىڭ ئورنىغا.

مۇناسىۋەتلىك ماقالىلەر