Chan eil Net::SMTP 3.16 a' clàradh paramadair constructor airson SOCKS no socaid ro-cheangailte. Cha chuir pasgadh tuairisgeulaiche faidhle leis an new_from_fd a fhuaras le oighreachas a constructor SMTP air obair. Bheir ceangal SOCKS soirbheachail sruth, chan e seisean puist a chaidh a thòiseachadh.

Airson SMTP lom, a' gabhail a-steach ùrachadh STARTTLS nas fhaide air adhart, 's e an t-seirbhisear a labhras an toiseach:

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

Tha seo sgeamach; tha na leudachaidhean air an ainmeachadh eadar-dhealaichte. Faodaidh an fhàilte fhèin a bhith thar iomadh loidhne: leanas còd freagairt le sgrìob, agus crìochnaichidh an loidhne mu dheireadh i. Cleachd an fhàilte gu lèir ro EHLO. Mur eil, faodaidh an teachdaiche 220 sean a leughadh nuair a tha e an dùil ri 250 EHLO agus dol a-mach à ceum air ceangal fallain.

Tha òrdugh eile aig TLS ion-fhillte: ceangal SOCKS, crathadh làimhe TLS, an uair sin fàilte SMTP taobh a-staigh TLS. Tòisichidh STARTTLS leis an fhàilte a ghabhas leughadh agus EHLO, ùraichidh e an sruth agus gheibh e comasan a-rithist às dèidh sin.

Mar as trice bidh an constructor poblach a' làimhseachadh rèiteachadh na socaid, paramadairean ceangail a chaidh a shàbhaladh agus fiosrachadh fàilte, a' chiad fhreagairt agus EHLO le tilleadh HELO far a bheil sin iomchaidh:

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;

Cleachdaidh an eisimpleir phoblach seo STARTTLS agus cha chuir e SOCKS air dòigh. Taghas ainm an t-seirbhisear an ceann-uidhe puist; bheir Hello dearbh-aithne SMTP an teachdaiche. Airson TLS ion-fhillte, cleachd an roghainn constructor clàraichte SSL agus port na seirbheise.

Cuiridh SendHello => 0 stad air EHLO/HELO fèin-obrachail, chan e leughadh na fàilte no togail a' ghiùlain. Chan eil gairm air leughadair loidhne agus an uair sin hello() na ionad clàraichte airson tòiseachadh nas motha: tha Net::Cmd a' seòrsachadh a leughadairean freagairt ìosal mar dhòighean fo-chlasa dìonnte.

Ma tha SOCKS riatanach, tagh teachdaiche le eadar-aghaidh SOCKS le taic no cùm amalachadh an aghaidh an dreach sònraichte de Net::SMTP. Cleachd an t-sreath gu h-àrd mar a chùmhnant seach a bhith a' dèanamh lethbhreac de raointean prìobhaideach. Feumaidh atharrachair TCP air leth làimhseachadh dearbh-aithne TLS a dh'aona ghnothaich: feumaidh an teisteanas an fhìor sheirbheis puist a chomharrachadh, agus bidh teisteanasan a' phrogsaidh air an cumail air leth bho logadh a-steach SMTP.

Artaigilean co-cheangailte