I-Net::SMTP 3.16 ayinayo i-SOCKS constructor exhunywe ngaphambili
I-Net::SMTP 3.16 ayikubhalanga ukhetho lwe-constructor lwesokhethi exhunywe ngaphambili. Gcina umlayezo wokubingelela we-SMTP, i-EHLO kanye nokulandelana kwe-TLS kunjalo lapho ukhetha ukuhlanganiswa kokuthutha nge-proxy.
I-Net::SMTP 3.16 ayikubhalanga ipharamitha ye-constructor ye-SOCKS noma yesokhethi exhunywe ngaphambili. Ukusonga incazelo yefayela nge-new_from_fd ezuzwe njengefa akukusebenzisi ukwakha kwayo kwe-SMTP. Ukuxhumana kwe-SOCKS okuphumelelayo kunikeza umsinga, hhayi iseshini ye-imeyili eqaliwe.
Ku-SMTP evamile, kuhlanganise nokuthuthukiswa kwe-STARTTLS kamuva, iseva ikhuluma kuqala:
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 ...Lona umdwebo; izandiso ezimemezelwe ziyahlukahluka. Umbiko wokubingelela ngokwawo ungahlanganisa imigqa eminingi: ikhodi yempendulo elandelwa ukhonkolo iqhubeka nempendulo, kanti umugqa wayo wokugcina uyiphetha. Sebenzisa umbiko wonke wokubingelela ngaphambi kwe-EHLO. Uma kungenjalo iklayenti lingafunda u-220 omdala ngesikhathi lilindele u-250 we-EHLO bese liphuma esigabeni ekuxhumaneni okunempilo.
I-TLS engabonakali inokunye ukulandelana: ukuxhumana kwe-SOCKS, ukuxhawula kwe-TLS, bese kuba umbiko we-SMTP ngaphakathi kwe-TLS. I-STARTTLS iqala ngombiko ofundekayo ne-EHLO, ithuthukisa umsinga bese ithola amakhono futhi ngemuva kwalokho.
I-constructor yomphakathi ivamise ukuphatha ukulungiselelwa kwesokhethi, amapharamitha okuxhumana agciniwe kanye nolwazi lombiko, impendulo yokuqala ne-EHLO enokubuyela ku-HELO lapho kufanele khona:
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;Lesi sibonelo somphakathi sisebenzisa i-STARTTLS futhi asilungiseleli i-SOCKS. Igama leseva likhetha indawo ye-imeyili; Hello inikeza ubunikazi be-SMTP beklayenti. Nge-TLS engabonakali, sebenzisa ukhetho lwe-constructor SSL olubhaliwe kanye nechweba lensiza.
SendHello => 0 icindezela i-EHLO/HELO ezenzakalelayo, hhayi ukufundwa kombiko noma ukwakhiwa kokuthutha. Ukushaya umfundi wemigqa bese hello() nakho akusona isikhundla esibhaliwe sokuqalisa: i-Net::Cmd ihlukanisa abafundi bayo bempendulo esezingeni eliphansi njengezindlela zesigaba esingaphansi ezivikelwe.
Uma i-SOCKS iphoqelekile, khetha iklayenti elinesixhumi esibonakalayo se-SOCKS esisekelwayo noma gcina ukuhlanganiswa ngokumelene nenguqulo ethile ye-Net::SMTP. Sebenzisa ukulandelana okungenhla njengesivumelwano sayo esikhundleni sokukopisha izinkambu eziyimfihlo. I-adaptha ye-TCP ehlukile nayo idinga ukuphathwa kwamabomu kobunikazi be-TLS: isitifiketi kufanele sikhombe insiza ye-imeyili yangempela, futhi imininingwane yokungena ye-proxy ihlala ihlukile ekungeneni kwe-SMTP.