Indy තුළ, TIdSMTP භාවිතා කරන IOHandler වෙත proxy එක සම්බන්ධ කරන්න. TIdSMTP.Host සහ Port තැපැල් සේවාව දෙසට තබන්න. IOHandler හි proxy සංරචකය මැදිහත්කරුගේ ලිපිනය සපයන අතර එම සම්බන්ධතාවයේම proxy handshake එක සිදු කරයි.

භාවිතා කරන ගුණාංගය 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 හෝ තැපැල් සත්‍යාපනය තුළ හඳුනාගත හැක, සෑම ප්‍රතික්ෂේපයක්ම වැරදි තැපැල් මුරපදයක් ලෙස සැලකීම වෙනුවට.

අදාළ ලිපි