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 प्रमाणीकरण.