Net::SMTP 3.16 ba shi da mafarin SOCKS da aka riga aka haɗa
Net::SMTP 3.16 ba ya rubuta wani zaɓi na mafari don soket da aka riga aka haɗa. Ka kiyaye gaisuwar SMTP, EHLO da jerin TLS yadda suke yayin zaɓar haɗin jigilar wakili.
Net::SMTP 3.16 ba ya rubuta sigar mafari ta SOCKS ko soket da aka riga aka haɗa. Rufe bayanin fayil da new_from_fd da aka gada ba ya tafiyar da mafarinsa na SMTP. Haɗin SOCKS mai nasara yana bayar da rafi, ba zaman imel da aka fara ba.
Don SMTP na yau da kullum, har da haɓakar STARTTLS daga baya, uwar garken ne ke fara magana:
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 ...Wannan zane ne; haɓakawar da aka sanar sun bambanta. Gaisuwar kanta na iya ratsa layuka da yawa: lambar amsa da tagulla ta biyo baya tana ci gaba da amsa, yayin da layinta na ƙarshe ke kawo ƙarshenta. Ka cinye duk gaisuwar kafin EHLO. In ba haka ba abokin ciniki na iya karanta tsohon 220 yayin da yake jiran 250 na EHLO kuma ya fita daga mataki a kan ingantaccen haɗi.
TLS na ciki yana da wani tsari: haɗin SOCKS, musafaha TLS, sannan gaisuwar SMTP cikin TLS. STARTTLS yana farawa da gaisuwar da ake iya karantawa da EHLO, yana haɓaka rafin kuma yana samun iyawa kuma bayan haka.
Mafarin jama'a yawanci yana kula da tsarin soket, sigogin haɗi da aka ajiye da bayanin gaisuwa, amsar farko da EHLO tare da koma baya zuwa HELO inda ya dace:
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;Wannan misali na jama'a yana amfani da STARTTLS kuma ba ya saita SOCKS. Sunan uwar garke yana zaɓar inda imel zai je; Hello yana bayar da asalin SMTP na abokin ciniki. Don TLS na ciki, yi amfani da zaɓin mafari SSL da aka rubuta da tashar sabis ɗin.
SendHello => 0 yana hana atomatik EHLO/HELO, ba karanta gaisuwa ko gina jigila ba. Kira mai karanta layi sannan hello() ma ba musanyar da aka rubuta ba ce don farawa: Net::Cmd yana rarraba masu karanta amsa na ƙananan matakai a matsayin hanyoyin aji na ƙasa da aka kare.
Idan SOCKS wajibi ne, zaɓi abokin ciniki mai tallafaffen mu'amalar SOCKS ko kula da haɗi da takamaiman sigar Net::SMTP. Yi amfani da jerin da ke sama a matsayin yarjejeniyarsa maimakon kwafin filaye na sirri. Adaftar TCP daban ma tana buƙatar kulawa da gangan ga asalin TLS: takardar shaidar dole ta gane ainihin sabis ɗin imel, kuma takardun shaidar wakili sun kasance dabam da shiga SMTP.