Net::SMTP 3.16 සතුව පෙර සම්බන්ධිත SOCKS නිර්මාපකයක් නොමැත
Net::SMTP 3.16 පෙර සම්බන්ධිත සොකට් සඳහා ලේඛනගත නිර්මාපක විකල්පයක් ලබා නොදේ. ප්රොක්සි ප්රවාහන ඒකාබද්ධතාවය තෝරන විට SMTP ආචාරය, EHLO සහ TLS අනුපිළිවෙල නොවෙනස්ව තබා ගන්න.
Net::SMTP 3.16 SOCKS හෝ පෙර සම්බන්ධිත සොකට් සඳහා නිර්මාපක පරාමිතියක් ලේඛනගත නොකරයි. ගොනු විස්තරකාරකය උරුම new_from_fd සමඟ ඔතා තැබීම එහි SMTP නිර්මාපකය ධාවනය නොකරයි. සාර්ථක SOCKS සම්බන්ධතාවයක් ප්රවාහයක් ලබා දේ, ආරම්භ කළ තැපැල් සැසියක් නොවේ.
සාමාන්ය SMTP සඳහා, පසුව STARTTLS උත්ශ්රේණි කිරීම ඇතුළුව, සේවාදායකය පළමුව කථා කරයි:
SOCKS: connection to smtp.example.net:587 succeeds
server: 220 smtp.example.net ready
client: EHLO client.example.net
server: 250-smtp.example.net
server: 250-STARTTLS
server: 250 AUTH ...මෙය සැකසුම් සටහනකි; ප්රකාශිත දිගු කිරීම් වෙනස් වේ. ආචාරයම පේළි කිහිපයක් පුරා විහිදිය හැකිය: ප්රතිචාර කේතයක් පසුව ඉරක් ආවොත් ප්රතිචාරය දිගටම පවතී, එහි අවසාන පේළිය එය අවසන් කරයි. EHLO ට පෙර සම්පූර්ණ ආචාරය පරිභෝජනය කරන්න. එසේ නොමැති නම් සේවාලාභියා EHLO හි 250 එනතුරු බලා සිටියදී පැරණි 220 කියවා සුවපහසු සම්බන්ධතාවයක රිද්මය අහිමි කරගත හැකිය.
ව්යංග TLS වෙනත් අනුපිළිවෙලක් ඇත: SOCKS සම්බන්ධතාවය, TLS අත්වැල් ගැසීම, පසුව TLS තුළ SMTP ආචාරය. STARTTLS කියවිය හැකි ආචාරය සහ EHLO සමඟ ආරම්භ වේ, ප්රවාහය උත්ශ්රේණි කර පසුව නැවත හැකියාවන් ලබා ගනී.
පොදු නිර්මාපකය සාමාන්යයෙන් සොකට් වින්යාසය, ගබඩා කළ සම්බන්ධතා පරාමිතීන් සහ ආචාර තොරතුරු, ආරම්භක ප්රතිචාරය සහ සුදුසු විට HELO ආපසු වැටීම සමඟ EHLO හසුරුවයි:
use Net::SMTP;
my $smtp = Net::SMTP->new(
'smtp.example.net',
Port => 587,
Hello => 'client.example.net',
Timeout => 30,
) or die "SMTP connection failed: $@";
$smtp->starttls()
or die "STARTTLS failed: " . $smtp->message;මෙම පොදු උදාහරණය STARTTLS භාවිතා කරන අතර SOCKS වින්යාස නොකරයි. සේවාදායක නාමය තැපැල් ගමනාන්තය තෝරයි; Hello සේවාලාභියාගේ SMTP අනන්යතාවය සපයයි. ව්යංග TLS සඳහා ලේඛනගත SSL නිර්මාපක විකල්පය සහ සේවාවේ තොටුපළ භාවිතා කරන්න.
SendHello => 0 ස්වයංක්රීය EHLO/HELO මර්දනය කරයි, ආචාරය කියවීම හෝ ප්රවාහනය ගොඩනැගීම නොවේ. පේළි කියවන්නෙකු කැඳවා පසුව hello() කැඳවීමද ආරම්භයේ ලේඛනගත ආදේශකයක් නොවේ: Net::Cmd එහි පහළ මට්ටමේ ප්රතිචාර කියවන්නන් ආරක්ෂිත උපපන්ති ක්රම ලෙස වර්ගීකරණය කරයි.
SOCKS අනිවාර්ය නම්, ආධාරක SOCKS අතුරුමුහුණතක් සහිත සේවාලාභියෙකු තෝරන්න හෝ නිශ්චිත Net::SMTP සංස්කරණයට එරෙහිව ඒකාබද්ධතාවයක් පවත්වා ගන්න. පුද්ගලික ක්ෂේත්ර පිටපත් කරනවා වෙනුවට ඉහත අනුපිළිවෙල එහි ගිවිසුම ලෙස භාවිතා කරන්න. වෙන් වූ TCP අඩප්ටරයටද සිතාමතා TLS අනන්යතාවය හැසිරවීම අවශ්ය වේ: සහතිකය සැබෑ තැපැල් සේවාව හඳුනාගත යුතු අතර ප්රොක්සි අක්තපත්ර SMTP පිවිසුමෙන් වෙන්ව පවතී.