CPython 3.14 imaplib trí SOCKS le TLS fíoraithe
Cuir IMAP SSL-nasc CPython 3.14 in oiriúint trí SOCKS gan soicéid a athsholáthar go domhanda ná féiniúlacht TLS an fhreastalaí poist a chailleadh.
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.