Net::SMTP 3.16 haidokumenti kigezo cha kijenzi cha SOCKS au soketi iliyounganishwa mapema. Kufunga kifafanuzi cha faili kwa new_from_fd iliyorithiwa hakuendeshi kijenzi chake cha SMTP. Muunganisho wa SOCKS uliofaulu hutoa mtiririko, si kikao cha barua kilichoanzishwa.

Kwa SMTP ya kawaida, ikiwa ni pamoja na uboreshaji wa STARTTLS baadaye, seva huzungumza kwanza:

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

Huu ni mchoro; viendelezi vinavyotangazwa hutofautiana. Salamu yenyewe inaweza kuchukua mistari kadhaa: msimbo wa jibu ukifuatiwa na kistari huendelea na jibu, huku mstari wake wa mwisho ukimaliza. Tumia salamu yote kabla ya EHLO. Vinginevyo mteja anaweza kusoma 220 ya zamani anaposubiri 250 ya EHLO na kutoka nje ya mdundo kwenye muunganisho mzuri.

TLS isiyo ya wazi ina mpangilio mwingine: muunganisho wa SOCKS, mshikamano wa TLS, kisha salamu ya SMTP ndani ya TLS. STARTTLS huanza na salamu inayosomeka na EHLO, huboresha mtiririko na baadaye hupata uwezo tena.

Kijenzi cha umma kwa kawaida hushughulikia usanidi wa soketi, vigezo vya muunganisho vilivyohifadhiwa na taarifa za salamu, jibu la awali na EHLO lenye mbadala wa HELO inapofaa:

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;

Mfano huu wa umma unatumia STARTTLS na hausanidi SOCKS. Jina la seva huchagua lengo la barua; Hello hutoa utambulisho wa SMTP wa mteja. Kwa TLS isiyo ya wazi, tumia chaguo la kijenzi SSL lililodokumenti na bandari ya huduma.

SendHello => 0 huzuia EHLO/HELO otomatiki, si usomaji wa salamu au ujenzi wa usafirishaji. Kuita kisomaji cha mistari kisha hello() pia si mbadala uliodokumenti wa uanzishaji: Net::Cmd huainisha visomaji vyake vya majibu vya kiwango cha chini kama mbinu za kikundi cha chini zilizolindwa.

Ikiwa SOCKS ni lazima, chagua mteja mwenye kiolesura cha SOCKS kinachotumika au dumisha muunganisho dhidi ya toleo mahususi la Net::SMTP. Tumia mpangilio ulio juu kama mkataba wake badala ya kunakili sehemu za faragha. Adapta ya TCP tofauti pia inahitaji utunzaji wa makusudi wa utambulisho wa TLS: cheti lazima kitambue huduma halisi ya barua, na vitambulisho vya proksi hubaki tofauti na kuingia kwa SMTP.

Makala zinazohusiana