CPython 3.14 imaplib SOCKS ৰ জৰিয়তে যাচাইকৃত TLS ৰ সৈতে
ছকেটসমূহ বিশ্বব্যাপী সলনি নকৰাকৈ বা মেইল চাৰ্ভাৰৰ TLS পৰিচয় নেহেৰুৱাকৈ CPython 3.14 ৰ IMAP SSL সংযোগ SOCKS ৰ মাজেৰে অভিযোজিত কৰক।
এটা IMAP SSL সংযোগে মেইল চাৰ্ভাৰক ইয়াৰ TLS সমকক্ষ হিচাপে ৰাখিয়েই SOCKS ৰ মাজেৰে যাব পাৰে। উপযোগী সংযোগ বিন্দুটো হৈছে যত ক্লায়েন্টে ইয়াৰ পৰিবহন সৃষ্টি কৰে, স্বাভাৱিক IMAP অভিবাদন আৰু সামৰ্থ্য পৰিচালনা আৰম্ভ হোৱাৰ আগতে।
CPython 3.14 ৰ বাবে, তলৰটোৱে PySocks ব্যৱহাৰ কৰা এটা সৰু অভিযোজক দেখুৱায়। ই এটা ব্যক্তিগত পৰিবহন হুক অতিক্ৰম কৰে, গতিকে ইয়াক ৰক্ষণাবেক্ষণ কৰি থকা imaplib সংস্কৰণৰ সৈতে বান্ধি ৰাখক:
import imaplib
import ssl
import socks
class SocksIMAP4SSL(imaplib.IMAP4_SSL):
def _create_socket(self, timeout):
stream = socks.create_connection(
(self.host, self.port),
timeout=timeout,
proxy_type=socks.SOCKS5,
proxy_addr="proxy.example",
proxy_port=1080,
proxy_rdns=True,
)
try:
return self.ssl_context.wrap_socket(
stream, server_hostname=self.host)
except Exception:
stream.close()
raise
context = ssl.create_default_context()
with SocksIMAP4SSL("imap.example", ssl_context=context,
timeout=15) as mailbox:
mailbox.noop()নামবোৰ আৰু পৰ্টটো ইতিমধ্যে উপলব্ধ এটা প্ৰক্সি আৰু IMAP সেৱাৰ বাবে স্থানধাৰক। ৰাজহুৱা প্ৰক্সি ব্যৱহাৰ কৰিবলৈ অনুমতি পোৱা এটা ৰাজহুৱা IMAP গন্তব্যৰ বাবে, SOCKS5 প্ৰক্সি তালিকাই প্ৰাৰ্থী যোগান ধৰে; প্ৰতিটোৱে প্ৰয়োজনীয় মেইল হোষ্ট আৰু পৰ্টত অনুমতি দিব লাগিব। PySocks নিৰ্ভৰশীলতাই SOCKS আলোচনা যোগান ধৰে; imaplib এ এতিয়াও মেইল অধিবেশন আৰম্ভ কৰে। কোনো বিশ্বব্যাপী socket.socket প্ৰতিস্থাপন ইয়াত নাই।
মেইল চাৰ্ভাৰৰ পৰিচয় ৰক্ষা কৰক
TLS হোষ্টনামটো imap.example হৈয়েই থাকে। ই SOCKS হোষ্টনাম নহয়। ssl.create_default_context() পাছ কৰিলে স্বাভাৱিক প্ৰমাণপত্ৰ আৰু হোষ্টনাম পৰীক্ষা ইচ্ছাকৃতভাৱে সক্ৰিয় হয়; কেৱল এটা এনক্ৰিপ্টেড ছকেটে সেই পৰীক্ষাবোৰ প্ৰতিষ্ঠা কৰিবলৈ যথেষ্ট নহয়।
proxy_rdns=True এ SOCKS পথক গন্তব্য হোষ্টনাম পৰিচালনা কৰিবলৈ কয়। যদি প্ৰক্সিৰ এটা একাউণ্টৰ প্ৰয়োজন, তেন্তে ইয়াৰ সমৰ্থিত প্ৰমাণপত্ৰৰ আৰ্গুমেন্ট সেই পৰিবহন সংৰচনাৰ অন্তৰ্গত। ইহঁতে মেইলবক্সত লগইন নকৰে।
অধিবেশন আৰম্ভণি imaplib ৰ ওচৰত এৰি দিয়ক
অভিযোজকে TLS ষ্ট্ৰিমটো স্বাভাৱিক নিৰ্মাণকৰ্তাৰ ওচৰত ঘূৰাই দিয়ে। পুৰণি উদাহৰণৰ পৰা open() পুনৰ বাস্তৱায়ন কৰিলে টাইমআউট পেৰামিটাৰ, বাফাৰিং আৰু অন্যান্য আৰম্ভণিৰ প্ৰত্যাশা হেৰাই যাব পাৰে। CPython 3.14 ত, পুৰণি file অভিগমও স্বাধীনভাৱে পুনৰ নিৰ্মাণ কৰিবলগীয়া ক্ষেত্ৰ নহয়, বৰং এটা সুসংগততাৰ বৈশিষ্ট্য।
লাইব্ৰেৰী উন্নীতকৰণৰ সময়ত এই ব্যক্তিগত হুকটো মিল থকা উৎসৰ সৈতে পুনৰ পৰ্যালোচনা কৰক। যদি উপশ্ৰেণী ৰক্ষণাবেক্ষণ অনুপযুক্ত, তেন্তে নথিভুক্ত প্ৰক্সি পৰিবহন ইণ্টাৰফেচ থকা এটা মেইল ক্লায়েন্ট বাছনি কৰক। যিকোনো ব্যৱস্থাই একে পৃথকীকৰণ ৰক্ষা কৰা উচিত: প্ৰক্সি সংযোগ, গন্তব্য TLS যাচাই, তাৰ পিছত IMAP প্ৰমাণীকৰণ।