CPython 3.14 imaplib د SOCKS له لارې د تایید شوي TLS سره
د CPython 3.14 IMAP SSL اړیکه د SOCKS له لارې سمه کړئ، پرته له دې چې سوکیټونه په نړیواله توګه بدل کړئ یا د بریښنالیک سرور TLS هویت له لاسه ورکړئ.
د IMAP SSL اړیکه کولی شي د SOCKS له لارې سفر وکړي او بریښنالیک سرور د خپل TLS همکار په توګه وساتي. ګټور یوځای کیدو نقطه هغه ځای دی چې کله کلینټ خپل ټرانسپورټ جوړوي، د عادي 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 تصدیق.