Is féidir le nasc IMAP SSL taisteal trí SOCKS agus an freastalaí poist a choinneáil mar a chomhpháirtí TLS. Is é an pointe comhtháthúcháin úsáideach an áit a chruthaíonn an cliant a iompar, sula dtosaíonn an gnáth-fháiltiú IMAP agus an láimhseáil cumais.

Le haghaidh CPython 3.14, léiríonn an méid seo a leanas oiriúntóir beag a úsáideann PySocks. Sáraíonn sé crúca iompair phríobháideach, mar sin coinnigh ceangailte é leis an leagan imaplib atá á chothabháil:

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()

Is áitsealbhóirí iad na hainmneacha agus an port do sheachfhreastalaí agus do sheirbhís IMAP atá ar fáil cheana. Le haghaidh ceann scríbe IMAP poiblí a bhfuil cead aige seachfhreastalaithe poiblí a úsáid, cuireann an liosta seachfhreastalaí SOCKS5 iarrthóirí ar fáil; caithfidh gach ceann acu an t-óstach poist agus an port riachtanach a cheadú. Soláthraíonn an spleáchas PySocks an chaibidlíocht SOCKS; déanann imaplib an seisiún poist a thúsú fós. Níl aon athsholáthar domhanda ar socket.socket i gceist.

Caomhnaigh féiniúlacht an fhreastalaí poist

Fanann an t-óstainm TLS mar imap.example. Ní hé an t-óstainm SOCKS é. Cumasaíonn rith ssl.create_default_context() na gnáthsheiceálacha teastais agus óstainmne go toiliúil; ní leor soicéad criptithe amháin chun na seiceálacha sin a bhunú.

Iarrann proxy_rdns=True ar an gcosán SOCKS óstainm an chinn scríbe a láimhseáil. Má éilíonn an seachfhreastalaí cuntas, baineann a argóintí dintiúirí tacaíochta leis an gcumraíocht iompair sin. Ní logálann siad isteach sa bhosca poist.

Fág túsú an tseisiúin ag imaplib

Filleann an t-oiriúntóir an sruth TLS ar an ngnáth-thógálaí. Má athchuireann tú open() i bhfeidhm ó shean-shampla, féadfaidh sé paraiméadair ama, maolánú agus ionchais thúsaithe eile a chailleadh. I CPython 3.14, is airí comhoiriúnachta é fiú an sean-rochtain file seachas réimse atá le hatógáil go saor.

Nuair a uasghrádaítear an leabharlann, déan an crúca príobháideach seo a athbhreithniú i gcoinne na foinse comhfhreagraí. Mura bhfuil cothabháil fo-aicme oiriúnach, roghnaigh cliant poist a bhfuil comhéadan iompair seachfhreastalaí doiciméadaithe aige. Ba cheart d'aon socrú an scaradh céanna a chaomhnú: nasc seachfhreastalaí, fíorú TLS an chinn scríbe, ansin fíordheimhniú IMAP.

Ailt ghaolmhara