ក្នុង Indy ភ្ជាប់ប្រូកស៊ីទៅ IOHandler ដែល TIdSMTP ប្រើ។ រក្សា TIdSMTP.Host និង Port ឱ្យឆ្ពោះទៅសេវាអ៊ីមែល។ សមាសភាគប្រូកស៊ីនៃ IOHandler ផ្តល់អាសយដ្ឋានរបស់អន្តរការី និងធ្វើការចាប់ដៃប្រូកស៊ីលើការតភ្ជាប់ដូចគ្នា។

លក្ខណសម្បត្តិដែលអ្នកប្រើអាស្រ័យលើកំណែ Indy៖ Indy 9 ផ្តល់ SocksInfo; Indy 10 ប្រើ TransparentProxy។ ពិនិត្យបណ្ណាល័យសមាសភាគក្នុងកម្មវិធី ជាជាងជ្រើសឧទាហរណ៍ដោយគ្រាន់តែឈ្មោះការចេញផ្សាយ Delphi។

Indy 10 ជាមួយ SOCKS5

សន្មតថាទម្រង់មានសមាសភាគទាំងនេះរួចហើយ៖

  • Smtp: TIdSMTP
  • MailSocket: TIdIOHandlerStack
  • Socks: TIdSocksInfo

ភ្ជាប់ និងកំណត់រចនាសម្ព័ន្ធពួកវាមុនពេលបើកការតភ្ជាប់ SMTP៖

Smtp.Host := 'smtp.example.net';
Smtp.Port := 587;
Smtp.IOHandler := MailSocket;

Socks.Host := 'proxy.example.net';
Socks.Port := 1080;
Socks.Version := svSocks5;
MailSocket.TransparentProxy := Socks;

តម្លៃច្រកគឺជាឧទាហរណ៍។ ច្រក SMTP ត្រូវតែត្រូវនឹងសេវា និងរបៀប TLS ដែលអ្នកគ្រោងប្រើ។ ច្រក SOCKS ជារបស់ប្រូកស៊ី។

សម្រាប់ការសាកល្បង SMTP សាធារណៈដែលអនុញ្ញាត ដែលអនុញ្ញាតឱ្យប្រើអន្តរការីសាធារណៈ បញ្ជីប្រូកស៊ី SOCKS5 ផ្តល់អាសយដ្ឋានបេក្ខជន។ បញ្ជាក់ថាបេក្ខជនអនុញ្ញាតម៉ាស៊ីន និងច្រកអ៊ីមែលពិត ហើយប្រើសាខាដែលគ្មានការផ្ទៀងផ្ទាត់ប្រូកស៊ី ដោយមិនរក្សាព័ត៌មានសម្ងាត់ពីប្រូកស៊ីមុន។

TIdSocksInfo ចាប់ផ្តើមដោយ svNoSocks ដូច្នេះការកំណត់តែឈ្មោះម៉ាស៊ីនប្រូកស៊ីមិនធ្វើឱ្យវាសកម្មទេ។ ជ្រើសកំណែ SOCKS សមស្រប។ ប្រសិនបើប្រូកស៊ីត្រូវការការផ្ទៀងផ្ទាត់ SOCKS5 ដោយឈ្មោះអ្នកប្រើ/ពាក្យសម្ងាត់ កំណត់រចនាសម្ព័ន្ធវិធីសាស្ត្រផ្ទៀងផ្ទាត់ និងព័ត៌មានសម្ងាត់៖

Socks.Authentication := saUsernamePassword;
Socks.Username := ProxyUser;
Socks.Password := ProxyPassword;

ProxyUser និង ProxyPassword តំណាងតម្លៃដែលកម្មវិធីផ្តល់។ លក្ខណសម្បត្តិទាំងនេះផ្ទៀងផ្ទាត់ជាមួយប្រូកស៊ី។ កំណត់រចនាសម្ព័ន្ធគណនី SMTP និងវិធីសាស្ត្រផ្ទៀងផ្ទាត់របស់វាដាច់ដោយឡែកក្នុងកម្មវិធីអ៊ីមែល។

រក្សា IOHandler TLS ដែលមានស្រាប់

កម្មវិធីអ៊ីមែលដែលប្រើ STARTTLS ឬ TLS បង្កប់ត្រូវការ IOHandler ដែលអាច SSL របស់វា។ កុំជំនួសសមាសភាគនោះដោយ TIdIOHandlerStack ធម្មតា គ្រាន់តែដើម្បីបន្ថែមប្រូកស៊ី។

ក្នុង Indy 10 មូលដ្ឋាន IOHandler SSL មកពី TIdIOHandlerStack និងទទួលមរតកការគាំទ្រប្រូកស៊ីរបស់វា។ សម្រាប់ IOHandler SSL ដែលត្រូវគ្នាដែលមានស្រាប់ឈ្មោះ MailTLS ការតភ្ជាប់ក្លាយជា៖

Smtp.IOHandler := MailTLS;
MailTLS.TransparentProxy := Socks;

ការកំណត់ UseTLS នៃសមាសភាគ SMTP នៅតែជ្រើសរបៀប TLS របស់សេវាអ៊ីមែល។ កំណត់រចនាសម្ព័ន្ធការជឿទុកចិត្តលើវិញ្ញាបនបត្រ និងការផ្ទៀងផ្ទាត់ឈ្មោះម៉ាស៊ីនក្នុងការរួមបញ្ចូល TLS សម្រាប់ smtp.example.net មិនមែនសម្រាប់ឈ្មោះម៉ាស៊ីនប្រូកស៊ីទេ។ ការបន្ថែមផ្លូវរូងក្រោមដីមិនបង្កើតការផ្ទៀងផ្ទាត់វិញ្ញាបនបត្រដោយខ្លួនឯងទេ។

ប្រើប្រូកស៊ី HTTP CONNECT ជំនួសវិញ

សម្រាប់ Indy 10 ប្រើសមាសភាគ TIdConnectThroughHttpProxy ដែលមានពី IdConnectThroughHttpProxy។ សន្មតថាមានវត្ថុដែលជាកម្មសិទ្ធិទម្រង់ឈ្មោះ HttpTunnel៖

HttpTunnel.Host := 'proxy.example.net';
HttpTunnel.Port := 8080;
HttpTunnel.Enabled := True;
MailSocket.TransparentProxy := HttpTunnel;

ប្រសិនបើ SMTP ប្រើ MailTLS កំណត់ HttpTunnel ទៅ TransparentProxy របស់អ្នកគ្រប់គ្រងនោះជំនួសវិញ។ គោលដៅអ៊ីមែលនៅតែលើ Smtp។

សមាសភាគនេះបង្កើត ផ្លូវរូងក្រោមដី HTTP CONNECT និងអនុវត្តការផ្ទៀងផ្ទាត់ប្រូកស៊ីមូលដ្ឋានតាមរយៈលក្ខណសម្បត្តិ Username និង Password របស់វា។ ប្រូកស៊ីដែលត្រូវការយន្តការផ្ទៀងផ្ទាត់ផ្សេងត្រូវការការអនុវត្តដែលត្រូវគ្នា; កុំសន្មតថាលក្ខណសម្បត្តិទាំងពីរនេះផ្តល់គ្រប់គ្រោងការផ្ទៀងផ្ទាត់ HTTP។

ប្រូកស៊ីក៏ត្រូវអនុញ្ញាត CONNECT ទៅច្រកពិតរបស់ម៉ាស៊ីនមេអ៊ីមែល។ ការអនុញ្ញាតឱ្យធ្វើផ្លូវរូងក្រោមដីទៅម៉ាស៊ីនមេវែបលើ 443 មិនមានន័យថាអនុញ្ញាតទៅដល់សេវាបញ្ជូនលើ 587 ឬម៉ាស៊ីនមេ SMTP លើ 25 ទេ។

ការតភ្ជាប់ Indy 9

Indy 9 ប្រើ TIdIOHandlerSocket និងលក្ខណសម្បត្តិ SocksInfo របស់វា។ ជាមួយសមាសភាគជាកម្មសិទ្ធិទម្រង់ឈ្មោះ Socket9 និង Socks9 ការភ្ជាប់ស្មើគ្នាគឺ៖

Smtp.IOHandler := Socket9;
Socket9.SocksInfo := Socks9;
Socks9.Host := 'proxy.example.net';
Socks9.Port := 1080;
Socks9.Version := svSocks5;

ការអនុវត្ត SOCKS របស់វាគាំទ្រកំណែ 4, 4a និង 5។ ការរៀបចំ TransparentProxy និងសមាសភាគ HTTP CONNECT របស់ Indy 10 មិនអាចបិទភ្ជាប់ដោយផ្ទាល់ទៅចំណុចប្រទាក់ចាស់នេះបានទេ។

មិនមានការចូលប្រូកស៊ីជាមុនដាច់ដោយឡែកដែលត្រូវធ្វើជាមួយកម្មវិធី TCP ផ្សេងទេ។ ការផ្ទៀងផ្ទាត់ប្រូកស៊ី ការរៀបចំផ្លូវរូងក្រោមដី និងការផ្លាស់ប្តូរ SMTP ត្រូវតែជាកម្មសិទ្ធិរបស់ការតភ្ជាប់ដែលសមាសភាគ SMTP ពិតជាប្រើ។ នៅពេលការភ្ជាប់នោះត្រឹមត្រូវ ការបរាជ័យអាចត្រូវបានកំណត់ទីតាំងនៅការចរចាប្រូកស៊ី ការស្វាគមន៍ SMTP TLS ឬការផ្ទៀងផ្ទាត់អ៊ីមែល ជាជាងចាត់ទុកការបដិសេធនីមួយៗថាជាពាក្យសម្ងាត់អ៊ីមែលខុស។

អត្ថបទពាក់ព័ន្ធ