Ní dhoiciméadaíonn Net::SMTP 3.16 paraiméadar constrachóra SOCKS ná soicéad réamhcheangailte. Ní ritheann timfhilleadh tuairisceora comhaid leis an new_from_fd oidhreachta a chonstruchtóir SMTP. Soláthraíonn nasc SOCKS rathúil sruth, ní seisiún poist túsaithe.

Le haghaidh SMTP lom, lena n-áirítear uasghrádú STARTTLS níos déanaí, labhraíonn an freastalaí ar dtús:

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

Tá sé seo scéimreach; athraíonn na síntí fógartha. Féadfaidh an teagmháil féin síneadh thar roinnt línte: leanann cód freagartha agus fleasc é ag leanúint na freagartha, agus críochnaíonn a líne dheireanach í. Ídigh an teagmháil iomlán roimh EHLO. Seachas sin féadfaidh an cliant 220 sean a léamh agus é ag súil le 250 EHLO agus teacht as céim ar nasc sláintiúil.

Tá ord eile ag TLS intuigthe: nasc SOCKS, croitheadh láimhe TLS, ansin teagmháil SMTP laistigh de TLS. Tosaíonn STARTTLS leis an teagmháil inléite agus EHLO, uasghrádaíonn an sruth agus faigheann cumais arís ina dhiaidh sin.

Láimhseálann an constrachóir poiblí de ghnáth cumraíocht an soicéid, paraiméadair naisc stóráilte agus faisnéis teagmhála, an chéad fhreagra agus EHLO le cúlú HELO nuair is cuí:

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;

Úsáideann an sampla poiblí seo STARTTLS agus ní chumraíonn sé SOCKS. Roghnaíonn ainm an fhreastalaí an ceann scríbe poist; soláthraíonn Hello féiniúlacht SMTP an chliaint. Le haghaidh TLS intuigthe, úsáid an rogha constrachóra doiciméadaithe SSL agus port na seirbhíse.

Cuireann SendHello => 0 EHLO/HELO uathoibríoch faoi chois, ní léamh na teagmhála ná tógáil an iompair. Ní hionann glaoch ar léitheoir líne agus ansin hello() agus ionad doiciméadaithe don túsú ach an oiread: aicmíonn Net::Cmd a léitheoirí freagartha ísealleibhéil mar mhodhanna cosanta fochlasa.

Má tá SOCKS éigeantach, roghnaigh cliant le comhéadan SOCKS tacaíochta nó coinnigh comhtháthú i gcoinne an leagain shonraigh de Net::SMTP. Úsáid an seicheamh thuas mar a chonradh seachas réimsí príobháideacha a chóipeáil. Teastaíonn láimhseáil fhéichiúnta féiniúlachta TLS ó oiriúnaitheoir TCP ar leithligh freisin: caithfidh an teastas an fíorsheirbhís poist a shainaithint, agus fanann dintiúirí an sheachfhreastalaí ar leithligh ó logáil isteach SMTP.

Ailt ghaolmhara