Net::SMTP 3.16 គ្មានអ្នកសាងសង់ SOCKS ដែលបានតភ្ជាប់ជាមុនទេ
Net::SMTP 3.16 មិនបានចងក្រងជាឯកសារជម្រើសអ្នកសាងសង់សម្រាប់សុខែតដែលបានតភ្ជាប់ជាមុនទេ។ រក្សាការស្វាគមន៍ SMTP, EHLO និងលំដាប់ TLS ឱ្យនៅដដែល ពេលជ្រើសរើសការរួមបញ្ចូលការដឹកជញ្ជូនតាមប្រូកស៊ី។
Net::SMTP 3.16 មិនចងក្រងជាឯកសារប៉ារ៉ាម៉ែត្រអ្នកសាងសង់ SOCKS ឬសុខែតដែលបានតភ្ជាប់ជាមុនទេ។ ការរុំការពិពណ៌នាឯកសារដោយ new_from_fd ដែលទទួលមរតកមិនដំណើរការអ្នកសាងសង់ SMTP របស់វាទេ។ ការតភ្ជាប់ SOCKS ជោគជ័យផ្តល់លំហូរ មិនមែនសម័យអ៊ីមែលដែលបានចាប់ផ្តើមទេ។
សម្រាប់ SMTP ធម្មតា រួមទាំងការតម្លើង STARTTLS ពេលក្រោយ ម៉ាស៊ីនមេនិយាយមុនគេ៖
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 ...នេះជាគំនូសបំព្រួញ; ផ្នែកបន្ថែមដែលបានផ្សព្វផ្សាយមានភាពខុសគ្នា។ ការស្វាគមន៍ខ្លួនវាអាចលាតសន្ធឹងច្រើនបន្ទាត់៖ លេខកូដឆ្លើយតបដែលបន្ទាប់មកដោយសញ្ញាដំណាក់បន្តការឆ្លើយតប ខណៈបន្ទាត់ចុងក្រោយបញ្ចប់វា។ ប្រើការស្វាគមន៍ទាំងមូលមុន EHLO។ បើមិនដូច្នេះទេ អតិថិជនអាចអាន 220 ចាស់ ខណៈរង់ចាំ 250 របស់ EHLO ហើយចេញពីចង្វាក់លើការតភ្ជាប់ដែលមានសុខភាពល្អ។
TLS បង្កប់មានលំដាប់ផ្សេង៖ ការតភ្ជាប់ SOCKS, ការចាប់ដៃ TLS, បន្ទាប់មកការស្វាគមន៍ SMTP ក្នុង TLS។ STARTTLS ចាប់ផ្តើមដោយការស្វាគមន៍ដែលអានបាន និង EHLO តម្លើងលំហូរ ហើយបន្ទាប់មកទទួលបានសមត្ថភាពឡើងវិញ។
អ្នកសាងសង់សាធារណៈជាធម្មតាគ្រប់គ្រងការកំណត់សុខែត ប៉ារ៉ាម៉ែត្រតភ្ជាប់ដែលបានរក្សាទុក និងព័ត៌មានស្វាគមន៍ ការឆ្លើយតបដំបូង និង EHLO ជាមួយការត្រឡប់ HELO នៅកន្លែងសមស្រប៖
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;ឧទាហរណ៍សាធារណៈនេះប្រើ STARTTLS ហើយមិនកំណត់ SOCKS ទេ។ ឈ្មោះម៉ាស៊ីនមេជ្រើសគោលដៅអ៊ីមែល; Hello ផ្តល់អត្តសញ្ញាណ SMTP របស់អតិថិជន។ សម្រាប់ TLS បង្កប់ សូមប្រើជម្រើសអ្នកសាងសង់ SSL ដែលបានចងក្រង និងច្រកសេវា។
SendHello => 0 បង្ក្រាប EHLO/HELO ស្វ័យប្រវត្តិ មិនមែនការអានការស្វាគមន៍ ឬការសាងសង់ការដឹកជញ្ជូនទេ។ ការហៅអ្នកអានបន្ទាត់ បន្ទាប់មក hello() ក៏មិនមែនជាការជំនួសដែលបានចងក្រងសម្រាប់ការចាប់ផ្តើមដែរ៖ Net::Cmd ចាត់ថ្នាក់អ្នកអានឆ្លើយតបកម្រិតទាបរបស់វាជាវិធីសាស្ត្រថ្នាក់ក្រោមដែលបានការពារ។
ប្រសិនបើ SOCKS ជាកាតព្វកិច្ច សូមជ្រើសអតិថិជនដែលមានចំណុចប្រទាក់ SOCKS ដែលគាំទ្រ ឬរក្សាការរួមបញ្ចូលជាមួយកំណែ Net::SMTP ជាក់លាក់។ ប្រើលំដាប់ខាងលើជាកិច្ចសន្យារបស់វា ជំនួសឱ្យការចម្លងវាលឯកជន។ អាដាប់ទ័រ TCP ដាច់ដោយឡែកក៏ត្រូវការការគ្រប់គ្រងអត្តសញ្ញាណ TLS ដោយចេតនា៖ វិញ្ញាបនបត្រត្រូវតែកំណត់សេវាអ៊ីមែលពិតប្រាកដ ហើយព័ត៌មានសម្គាល់ប្រូកស៊ីនៅដាច់ពីការចូល SMTP។