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.

Izihloko ezihlobene