Net::SMTP 3.16 ma laha hal-abuur SOCKS horay u xidhan
Net::SMTP 3.16 ma diiwaangeliso ikhtiyaar hal-abuur oo ku saabsan socket horay u xidhan. Marka aad dooranayso isku-dhafka gaadiidka proxy, hayso salaanta SMTP, EHLO iyo nidaamka TLS sidooda.
Net::SMTP 3.16 ma diiwaangeliso hal-abuur SOCKS ama socket horay u xidhan. Ku duubista sharraxa faaylka new_from_fd dhaxal ahaan la helay ma shaqeeyo hal-abuurkeeda SMTP. Xiriir SOCKS oo guulaystay wuxuu bixiyaa qulqul, ma aha fadhi iimayl oo la bilaabay.
SMTP caadi ah, oo ay ku jirto casriyeyn STARTTLS dambe, server ayaa marka hore hadla:
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 ...Kani waa jaantus; fidinnada la dhawaaqay way kala duwan yihiin. Salaanta lafteedu waxay qaadan kartaa dhowr sadar: koodh jawaab oo ay daboosho xariiqdu wuxuu sii wadaa jawaabta, halka sadarkiisa ugu dambeeya uu dhammeeyo. Isticmaal salaanta oo dhan ka hor EHLO. Haddii kale macmiilku wuxuu akhrin karaa 220 duug ah marka uu sugayo 250 ee EHLO oo uu ka baxo laxanka xiriir caafimaad qaba.
TLS dadban wuxuu leeyahay nidaam kale: xiriir SOCKS, gacan-qaad TLS, ka dib salaanta SMTP gudaha TLS. STARTTLS wuxuu ku bilaabmaa salaanta la akhrin karo iyo EHLO, wuxuu casriyeeyaa qulqulka oo uu mar kale helaa awoodaha ka dib.
Hal-abuurka dadweynaha ayaa caadi ahaan maareeya habaynta socket, cabbirrada xiriirka la kaydiyay iyo macluumaadka salaanta, jawaabta bilowga ah iyo EHLO oo leh HELO dib-u-noqosho marka ku habboon:
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;Tusaalahan dadweynaha wuxuu isticmaalaa STARTTLS oo ma habayn SOCKS. Magaca server wuxuu dooranayaa meesha iimaylka; Hello wuxuu bixiyaa aqoonsiga SMTP ee macmiilka. TLS dadban, isticmaal ikhtiyaarka hal-abuur SSL oo diiwaangashan iyo dekedda adeegga.
SendHello => 0 wuxuu xakameeyaa EHLO/HELO otomaatig ah, ma aha akhrinta salaanta ama dhisidda gaadiidka. Wicitaanka akhriye sadar kadibna hello() sidoo kale ma aha beddelka diiwaangashan ee bilowga: Net::Cmd waxay u kala saartaa akhriyeyaasheeda jawaabta heer hoose sida habab qayb-hoosaad ah oo la ilaaliyay.
Haddii SOCKS qasab tahay, dooro macmiil leh interface SOCKS la taageeray ama hay isku-dhaf la jira nooca Net::SMTP gaar ah. U isticmaal nidaamka kore sida heshiiskiisa halkii aad koobi lahayd goobo gaar ah. Adapter TCP gaar ah ayaa sidoo kale u baahan maaraynta aqoonsiga TLS oo ula kac ah: shahaadadu waa inay aqoonsato adeegga iimaylka dhabta ah, tixraacyada proxy-gana waxay si gaar ah uga hadhaan gelitaanka SMTP.