Net::SMTP 3.16k ez du SOCKS edo aurrez konektatutako socketerako eraikitzailerik dokumentatzen. Fitxategi-deskriptorea heredatutako new_from_fd-rekin biltzeak ez du bere SMTP eraikitzailea exekutatzen. SOCKS konexio on batek korrontea ematen du, ez hasieratutako posta-saioa.

SMTP arrunterako, geroagoko STARTTLS berritze bat barne, zerbitzariak hitz egiten du lehenengo:

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 ...

Hau eskematikoa da; iragarritako luzapenak aldatzen dira. Agurrak berak hainbat lerro har ditzake: erantzun-kode bati gidoia jarraituz gero erantzunak jarraitzen du, eta azken lerroak amaitzen du. Kontsumitu agur osoa EHLO aurretik. Bestela bezeroak 220 zahar bat irakur dezake EHLOren 250aren zain dagoela eta konpasik gal dezake konexio osasuntsu batean.

TLS inplizituak beste ordena bat du: SOCKS konexioa, TLS esku-ukipena, gero SMTP agurra TLS barruan. STARTTLS irakurgarria den agurrarekin eta EHLOrekin hasten da, korrontea berritzen du eta ondoren gaitasunak berriro lortzen ditu.

Eraikitzailde publikoak normalean socket konfigurazioa, gordetako konexio-parametroak eta agur informazioa, hasierako erantzuna eta EHLO kudeatzen ditu HELO ordezkoarekin behar denean:

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;

Adibide publiko honek STARTTLS erabiltzen du eta ez du SOCKS konfiguratzen. Zerbitzariaren izenak posta-helmuga hautatzen du; Hello-k bezeroaren SMTP identitatea ematen du. TLS inpliziturako, erabili dokumentatutako SSL eraikitzaileren aukera eta zerbitzuaren ataka.

SendHello => 0-k EHLO/HELO automatikoa ezabatzen du, ez agurraren irakurketa edo garraioaren eraikuntza. Lerro-irakurle bat deitu eta gero hello() deitzea ere ez da hasieratzearen ordezko dokumentatua: Net::Cmd-ek bere erantzun-irakurle maila baxuak azpiklase metodo babestu gisa sailkatzen ditu.

SOCKS derrigorrezkoa bada, aukeratu SOCKS interfaze onartua duen bezero bat edo mantendu integrazioa Net::SMTP bertsio zehatzaren aurka. Erabili goiko sekuentzia bere kontratu gisa, eremu pribatuak kopiatu ordez. TCP egokitzaile bereizi batek TLS identitatearen kudeaketa deliberatua behar du: ziurtagiriak benetako posta-zerbitzua identifikatu behar du, eta proxy kredentzialak SMTP saio-hasieratik bereizita jarraitzen dute.

Erlazionatutako artikuluak