د 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 تصدیق.

اړوندې مقالې