Net::SMTP 3.16 nema konstruktor za unaprijed povezani SOCKS
Net::SMTP 3.16 ne dokumentira opciju konstruktora za unaprijed povezani socket. Sačuvajte SMTP pozdrav, EHLO i TLS slijed pri odabiru proxy transportne integracije.
Net::SMTP 3.16 ne dokumentira parametar konstruktora za SOCKS ili unaprijed povezani socket. Omotavanje datotečnog deskriptora naslijeđenim new_from_fd ne pokreće njegov SMTP konstruktor. Uspješna SOCKS veza daje tok, a ne inicijaliziranu mail sesiju.
Za obični SMTP, uključujući kasniju STARTTLS nadogradnju, poslužitelj govori prvi:
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 ...Ovo je shematski; oglašene ekstenzije variraju. Sam pozdrav može obuhvaćati više redaka: kod odgovora praćen crticom nastavlja odgovor, a završni redak ga završava. Potrošite cijeli pozdrav prije EHLO. Inače klijent može pročitati stari 220 kada očekuje EHLO 250 i izaći iz koraka na zdravoj vezi.
Implicitni TLS ima drugi slijed: SOCKS veza, TLS rukovanje, zatim SMTP pozdrav unutar TLS-a. STARTTLS počinje čitljivim pozdravom i EHLO, nadograđuje tok i nakon toga ponovno dobiva mogućnosti.
Javni konstruktor obično obrađuje konfiguraciju socketa, spremljene parametre veze i informacije pozdrava, početni odgovor i EHLO s HELO rezervom gdje je prikladno:
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;Ovaj javni primjer koristi STARTTLS i ne konfigurira SOCKS. Ime poslužitelja odabire mail odredište; Hello daje SMTP identitet klijenta. Za implicitni TLS upotrijebite dokumentiranu opciju konstruktora SSL i port usluge.
SendHello => 0 potiskuje automatski EHLO/HELO, ne čitanje pozdrava ili izgradnju transporta. Pozivanje čitača redaka pa hello() također nije dokumentirana zamjena za inicijalizaciju: Net::Cmd klasificira svoje niskorazinske čitače odgovora kao zaštićene metode potklase.
Ako je SOCKS obavezan, odaberite klijent s podržanim SOCKS sučeljem ili održavajte integraciju prema konkretnoj verziji Net::SMTP. Koristite gornji slijed kao njegov ugovor umjesto kopiranja privatnih polja. Zasebni TCP adapter također zahtijeva svjesno upravljanje TLS identitetom: certifikat mora identificirati stvarnu mail uslugu, a proxy akreditivi ostaju odvojeni od SMTP prijave.