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 அங்கீகாரம்.