Net::SMTP 3.16 kò ní SOCKS constructor tí ó ti sopọ tẹ́lẹ̀
Net::SMTP 3.16 kò ṣe àkọsílẹ̀ àṣàyàn constructor fún socket tí ó ti sopọ tẹ́lẹ̀. Pa ìkíni SMTP, EHLO àti ìtòlẹ́sẹẹsẹ TLS mọ́ bí wọ́n ti rí nígbà tí o bá ń yan ìsopọ̀ gbígbé proxy.
Net::SMTP 3.16 kò ṣe àkọsílẹ̀ àwọn pàrómítà constructor fún SOCKS tàbí socket tí ó ti sopọ tẹ́lẹ̀. Pípa descriptor fáìlì pẹ̀lú new_from_fd tí a jogún kò mú constructor SMTP rẹ̀ ṣiṣẹ́. Ìsopọ̀ SOCKS tí ó yọrísí ń pèsè ìṣàn, kì í ṣe ìpàdé méèlì tí a ti bẹ̀rẹ̀.
Fún SMTP lasan, pẹ̀lú ìgbéga STARTTLS tí ó ń bọ̀ lẹ́yìn, sáfà ni ó kọ́kọ́ sọ̀rọ̀:
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 ...Èyí jẹ́ àwòrán; àwọn àfikún tí a kéde yàtọ̀. Ìkíni fúnra rẹ̀ lè ní ọ̀pọ̀ ìlà: kóòdù ìdáhùn tí ó tẹ̀lé pẹ̀lú àmì ìsopọ̀ máa ń tẹ̀síwájú ìdáhùn, nígbà tí ìlà ìkẹyìn rẹ̀ máa ń parí rẹ̀. Lo gbogbo ìkíni náà kí EHLO tó dé. Bí bẹ́ẹ̀ kọ́, alábàárò lè ka 220 àtijọ́ nígbà tí ó ń retí 250 EHLO kí ó sì jáde kúrò nínú ìlù lórí ìsopọ̀ aláfíà.
TLS àìfọ̀mọ́ ní ìtòlẹ́sẹẹsẹ mìíràn: ìsopọ̀ SOCKS, ìfọwọ́sowọ́pọ̀ TLS, lẹ́yìn náà ìkíni SMTP nínú TLS. STARTTLS bẹ̀rẹ̀ pẹ̀lú ìkíni tí a lè kà àti EHLO, gbé ìṣàn náà ga, ó sì tún gba àwọn agbára lẹ́yìn náà.
Constructor gbogbogbò máa ń bójú tó ìṣètò socket, àwọn pàrómítà ìsopọ̀ tí a fipamọ́ àti ìsọfúnni ìkíni, ìdáhùn àkọ́kọ́ àti EHLO pẹ̀lú ìpadàbọ̀ HELO níbi tí ó yẹ:
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;Àpẹẹrẹ gbogbogbò yìí ń lo STARTTLS kò sì ṣètò SOCKS. Orúkọ sáfà máa ń yan ibi tí méèlì ń lọ; Hello ń pèsè ìdánimọ̀ SMTP alábàárò. Fún TLS àìfọ̀mọ́, lo àṣàyàn constructor SSL tí a kọ sílẹ̀ àti pọ́tì iṣẹ́ náà.
SendHello => 0 ń dènà EHLO/HELO aládàáṣiṣẹ́, kì í ṣe kíkà ìkíni tàbí kíkọ́ gbígbé. Pípè olùkà ìlà kan lẹ́yìn náà hello() kì í tún ṣe àṣeparí tí a kọ sílẹ̀ fún ìbẹ̀rẹ̀: Net::Cmd máa ń pín àwọn olùkà ìdáhùn ìpele ìsàlẹ̀ rẹ̀ gẹ́gẹ́ bí àwọn ọ̀nà abẹ́kùn tí a dáàbò bò.
Bí SOCKS bá jẹ́ dandan, yan alábàárò tí ó ní ìfọwọ́sowọ́pọ̀ SOCKS tí a ń gbà tàbí tẹ̀síwájú ìsopọ̀ pẹ̀lú ẹ̀dà Net::SMTP pàtó kan. Lo ìtòlẹ́sẹẹsẹ tí ó wà lókè gẹ́gẹ́ bí àdéhùn rẹ̀ dípò kíkọ́ àwọn pápá àdáni. Adapter TCP ọ̀tọ̀ tún nílò ìtọ́jú ìdánimọ̀ TLS pẹ̀lú ìmọ̀: ìwé-ẹ̀rí gbọ́dọ̀ dán ìdánimọ̀ iṣẹ́ méèlì gidi, àwọn ẹ̀rí proxy sì wà lọ́tọ̀ sí wíwọlé SMTP.