CPython 3.14 imaplib iyada oo SOCKS loo marayo oo leh TLS la xaqiijiyay
Ku habee xiriirka IMAP SSL ee CPython 3.14 iyada oo loo marayo SOCKS iyada oo aan si caalami ah loo beddelin sockets ama aan lumin aqoonsiga TLS ee serverka boostada.
Xiriirka IMAP SSL wuxuu mari karaa SOCKS isagoo serverka boostada u haynaya saaxiibkiisa TLS. Meesha is-dhexgalka faa'iidada leh waa halka macmiilku ka abuuro gaadiidkiisa, ka hor inta aan bilaaban salaanta IMAP ee caadiga ah iyo maaraynta awoodaha.
CPython 3.14, tan soo socota waxay muujinaysaa adapter yar oo isticmaalaya PySocks. Wuxuu ka gudbaa jillaab gaadiid gaar ah, markaa ku xir nooca imaplib ee la dayactirayo:
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()Magacyada iyo dekeddu waa meelo bannaan oo loogu talagalay proxy iyo adeeg IMAP horey u jiray. Meel loo socdo IMAP dadweyne oo loo ogol yahay isticmaalka proxy dadweyne, liiska proxy SOCKS5 wuxuu bixiyaa musharixiin; mid kasta waa inuu oggolaadaa martigeliyaha boostada iyo dekedda loo baahan yahay. Ku-tiirsanaanta PySocks waxay bixisaa gorgortanka SOCKS; imaplib weli wuxuu bilaabaa fadhiga boostada. Ma jiro beddel caalami ah oo socket.socket ah oo ku lug leh.
Ilaali aqoonsiga serverka boostada
Magaca martigeliyaha TLS wuxuu ahaanayaa imap.example. Maaha magaca martigeliyaha SOCKS. Gudbinta ssl.create_default_context() waxay si ula kac ah u shidaysaa hubinta shahaadada iyo magaca martigeliyaha ee caadiga ah; socket la sirtey oo keliya kuma filna in la dhigo hubintaas.
proxy_rdns=True wuxuu waydiisanayaa waddada SOCKS inay maamusho magaca martigeliyaha meesha loo socdo. Haddii proxygu u baahan yahay akoon, doodihiisa aqoonsiga la taageeray waxay ka tirsan yihiin qaabeynta gaadiidkaas. Kuma galaan sanduuqa boostada.
U dhaaf bilowga fadhiga imaplib
Adapterku wuxuu ku celiyaa qulqulka TLS dhismaha caadiga ah. Dib-u-hirgelinta open() oo laga soo qaatay tusaale duug ah waxay seegtay macaamiisha waqtiga, bakhaaraynta iyo filashooyinka kale ee bilowga. CPython 3.14, xitaa gelitaanka file duug ah waa hanti waafaqsan, ma aha goob si xor ah loo dib u dhiso.
Marka maktabadda la cusboonaysiiyo, dib u eeg jillaabkan gaarka ah oo la barbardhig isha u dhigma. Haddii dayactirka fasalka hoose aanay ku habboonayn, dooro macmiil boosto leh interface gaadiid proxy oo la diiwaangeliyay. Nidaam kasta waa inuu ilaaliyo isla kala-soocidda: xiriirka proxy, xaqiijinta TLS ee meesha loo socdo, ka dib xaqiijinta IMAP.