Indy-യുടെ SMTP കണക്ഷന് ഒരു പ്രോക്സി IOHandler നൽകുക
ശരിയായ Indy പതിപ്പിന്റെ IOHandler ഗുണങ്ങൾ ഉപയോഗിച്ച് SOCKS അല്ലെങ്കിൽ HTTP CONNECT TIdSMTP-യിലേക്ക് ബന്ധിപ്പിക്കുക, മെയിലും പ്രോക്സിയും വെവ്വേറെ ക്രമീകരിച്ച്.
Indy-യിൽ, TIdSMTP ഉപയോഗിക്കുന്ന IOHandler-ലേക്ക് പ്രോക്സി ചേർക്കുക. TIdSMTP.Host-ഉം Port-ഉം മെയിൽ സേവനത്തിലേക്ക് തന്നെ വയ്ക്കുക. IOHandler-ന്റെ പ്രോക്സി ഘടകം ഇടനിലക്കാരന്റെ വിലാസം നൽകുകയും അതേ കണക്ഷനിൽ പ്രോക്സി ഹാൻഡ്ഷേക്ക് ചെയ്യുകയും ചെയ്യുന്നു.
ഉപയോഗിക്കേണ്ട ഗുണം Indy പതിപ്പിനെ ആശ്രയിച്ചിരിക്കുന്നു: Indy 9 SocksInfo നൽകുന്നു; Indy 10 TransparentProxy ഉപയോഗിക്കുന്നു. Delphi റിലീസിന്റെ പേര് മാത്രം നോക്കി ഉദാഹരണം തിരഞ്ഞെടുക്കാതെ ആപ്പിലെ ഘടക ലൈബ്രറി പരിശോധിക്കുക.
SOCKS5-നൊപ്പം Indy 10
ഫോമിൽ ഇവ ഇതിനകം ഉണ്ടെന്ന് കരുതുക:
Smtp: TIdSMTPMailSocket: TIdIOHandlerStackSocks: 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 പോർട്ട് പ്രോക്സിയുടേതാണ്.
പൊതു ഇടനിലക്കാരനെ അനുവദിക്കുന്ന അനുവദനീയമായ പൊതു SMTP പരിശോധനയ്ക്ക്, SOCKS5 പ്രോക്സി പട്ടിക സ്ഥാനാർത്ഥി വിലാസങ്ങൾ നൽകുന്നു. സ്ഥാനാർത്ഥി യഥാർത്ഥ മെയിൽ ഹോസ്റ്റും പോർട്ടും അനുവദിക്കുന്നുവെന്ന് സ്ഥിരീകരിക്കുക, മുൻ പ്രോക്സിയുടെ ക്രെഡൻഷ്യലുകൾ സൂക്ഷിക്കാതെ പ്രോക്സി-പ്രാമാണീകരണം ഇല്ലാത്ത ശാഖ ഉപയോഗിക്കുക.
TIdSocksInfo svNoSocks-ൽ തുടങ്ങുന്നു, അതിനാൽ പ്രോക്സി ഹോസ്റ്റ്നെയിം മാത്രം സജ്ജമാക്കുന്നത് അതിനെ സജീവമാക്കുന്നില്ല. അനുയോജ്യമായ SOCKS പതിപ്പ് തിരഞ്ഞെടുക്കുക. പ്രോക്സിക്ക് SOCKS5 ഉപയോക്തൃനാമം/പാസ്വേഡ് പ്രാമാണീകരണം ആവശ്യമെങ്കിൽ, പ്രാമാണീകരണ രീതിയും ക്രെഡൻഷ്യലുകളും രണ്ടും ക്രമീകരിക്കുക:
Socks.Authentication := saUsernamePassword;
Socks.Username := ProxyUser;
Socks.Password := ProxyPassword;
ProxyUser-ഉം ProxyPassword-ഉം ആപ്പ് നൽകുന്ന മൂല്യങ്ങളെ പ്രതിനിധീകരിക്കുന്നു. ഈ ഗുണങ്ങൾ പ്രോക്സിയോട് പ്രാമാണീകരിക്കുന്നു. SMTP അക്കൗണ്ടും അതിന്റെ പ്രാമാണീകരണ രീതിയും മെയിൽ ക്ലയന്റിൽ വെവ്വേറെ ക്രമീകരിക്കുക.
നിലവിലുള്ള TLS IOHandler നിലനിർത്തുക
STARTTLS അല്ലെങ്കിൽ സൂചിത TLS ഉപയോഗിക്കുന്ന മെയിൽ ക്ലയന്റിന് അതിന്റെ SSL-ശേഷിയുള്ള IOHandler ആവശ്യമാണ്. പ്രോക്സി ചേർക്കാൻ മാത്രം ആ ഘടകം സാധാരണ TIdIOHandlerStack കൊണ്ട് മാറ്റരുത്.
Indy 10-ൽ SSL IOHandler അടിസ്ഥാനം TIdIOHandlerStack-ൽ നിന്ന് ഉത്ഭവിക്കുകയും അതിന്റെ പ്രോക്സി പിന്തുണ പാരമ്പര്യമായി നേടുകയും ചെയ്യുന്നു. MailTLS എന്ന പേരിലുള്ള നിലവിലുള്ള അനുയോജ്യമായ SSL IOHandler-ന്, കണക്ഷൻ ഇതാകും:
Smtp.IOHandler := MailTLS;
MailTLS.TransparentProxy := Socks;
SMTP ഘടകത്തിന്റെ UseTLS ക്രമീകരണം ഇപ്പോഴും മെയിൽ സേവനത്തിന്റെ TLS മോഡ് തിരഞ്ഞെടുക്കുന്നു. smtp.example.net-നായി TLS സംയോജനത്തിൽ സർട്ടിഫിക്കറ്റ് വിശ്വാസവും ഹോസ്റ്റ്നെയിം സാധൂകരണവും ക്രമീകരിക്കുക, പ്രോക്സി ഹോസ്റ്റ്നെയിമിനല്ല. ടണൽ ചേർക്കുന്നത് സ്വയം സർട്ടിഫിക്കറ്റ് സാധൂകരണം സ്ഥാപിക്കുന്നില്ല.
പകരം HTTP CONNECT പ്രോക്സി ഉപയോഗിക്കുക
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 ഗുണങ്ങളിലൂടെ അടിസ്ഥാന പ്രോക്സി പ്രാമാണീകരണം നടപ്പാക്കുകയും ചെയ്യുന്നു. മറ്റൊരു പ്രാമാണീകരണ സംവിധാനം ആവശ്യമുള്ള പ്രോക്സിക്ക് അനുയോജ്യമായ നടപ്പാക്കൽ വേണം; ഈ രണ്ട് ഗുണങ്ങൾ എല്ലാ HTTP പ്രാമാണീകരണ സ്കീമുകളും നൽകുന്നുവെന്ന് കരുതരുത്.
പ്രോക്സി മെയിൽ സർവറിന്റെ യഥാർത്ഥ പോർട്ടിലേക്കുള്ള 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 ക്ലയന്റുമായി ചെയ്യേണ്ട പ്രത്യേക പ്രാരംഭ പ്രോക്സി ലോഗിൻ ഇല്ല. പ്രോക്സി പ്രാമാണീകരണം, ടണൽ ക്രമീകരണം, SMTP കൈമാറ്റം എന്നിവ SMTP ഘടകം യഥാർത്ഥത്തിൽ ഉപയോഗിക്കുന്ന കണക്ഷന്റേതായിരിക്കണം. ആ വയറിംഗ് ശരിയാണെങ്കിൽ, പരാജയം പ്രോക്സി ചർച്ച, SMTP അഭിവാദനം, TLS അല്ലെങ്കിൽ മെയിൽ പ്രാമാണീകരണം എന്നിവയിൽ കണ്ടെത്താം, ഓരോ നിരസിക്കലിനെയും മോശം മെയിൽ പാസ്വേഡായി കാണുന്നതിന് പകരം.