CPython 3.14 imaplib tro SOCKS le TLS dearbhte
Atharraich ceangal IMAP SSL CPython 3.14 tro SOCKS gun a bhith ag ath-chur socaidean gu cruinne no a' call dearbh-aithne TLS an fhrithealaiche puist.
Faodaidh ceangal IMAP SSL siubhal tro SOCKS agus am frithealaiche puist a chumail mar a chompanach TLS. Is e a' phuing-fhilleadh feumail an t-àite far a bheil an teachdaiche a' cruthachadh a ghiùlan, mus tòisich an sgeul IMAP àbhaisteach agus an làimhseachadh comais.
Airson CPython 3.14, tha na leanas a' sealltainn inneal-atharrachaidh beag a chleachdas PySocks. Tha e a' dol thairis air dubhan giùlain phrìobhaideach, mar sin cùm e ceangailte ris an dreach imaplib a thathar a' cumail:
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()Tha na h-ainmean agus am port nan àitichean-seasaimh airson neach-ionaid agus seirbheis IMAP a tha rim faighinn mu thràth. Airson ceann-uidhe IMAP poblach aig a bheil cead neach-ionaid poblach a chleachdadh, tha an liosta neach-ionaid SOCKS5 a' tabhann thagraichean; feumaidh gach fear an t-òstair puist agus am port a dhìth a cheadachadh. Bheir an eisimeileachd PySocks seachad an co-rèiteachadh SOCKS; tha imaplib fhathast a' tòiseachadh an t-seisein puist. Chan eil ath-chur cruinne sam bith air socket.socket an sàs.
Glèidh dearbh-aithne an fhrithealaiche puist
Tha ainm-òstair TLS a' fuireach mar imap.example. Chan e ainm-òstair SOCKS a th' ann. Le bhith a' dol seachad air ssl.create_default_context() tha thu a dh'aon ghnothach a' comasachadh nan sgrùdaidhean teisteanais is ainm-òstair àbhaisteach; chan eil socaid chrioptaichte leis fhèin gu leòr gus na sgrùdaidhean sin a stèidheachadh.
Tha proxy_rdns=True ag iarraidh air an t-slighe SOCKS ainm-òstair a' chinn-uidhe a làimhseachadh. Ma tha feum aig an neach-ionaid air cunntas, buinidh na h-argamaidean teisteis a tha e a' cumail ris an rèiteachadh giùlain sin. Chan eil iad a' clàradh a-steach don bhogsa-puist.
Fàg tòiseachadh an t-seisein aig imaplib
Bheir an t-inneal-atharrachaidh an t-sruth TLS air ais don luchd-togail àbhaisteach. Ma nì thu ath-chur air open() bho sheann eisimpleir, dh'fhaodadh e paramadairean ùine, maothachadh agus dùilean tòiseachaidh eile a chall. Ann an CPython 3.14, tha eadhon an t-seann ruigsinneachd file na fheart co-fhreagarrachd seach na raon a ghabhas ath-thogail gu saor.
Nuair a thèid an leabharlann ùrachadh, dèan lèirmheas air an dubhan phrìobhaideach seo an aghaidh an tùs cho-fhreagairt. Mura h-eil e freagarrach fo-chlas a chumail, tagh teachdaiche puist le eadar-aghaidh giùlain neach-ionaid clàraichte. Bu chòir do dh'eagrachadh sam bith an aon sgaradh a ghleidheadh: ceangal neach-ionaid, dearbhadh TLS a' chinn-uidhe, an uairsin dearbhadh IMAP.