Indy இல், TIdSMTP பயன்படுத்தும் IOHandler உடன் proxy ஐ இணைக்கவும். 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 அல்லது மின்னஞ்சல் அங்கீகாரத்தில் கண்டறியலாம், ஒவ்வொரு மறுப்பையும் தவறான மின்னஞ்சல் கடவுச்சொல்லாகக் கருதுவதற்குப் பதிலாக.

தொடர்புடைய கட்டுரைகள்