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 உள்நுழைவிலிருந்து தனியாக இருக்கும்.

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