CPython 3.14 imaplib nípasẹ̀ SOCKS pẹ̀lú TLS tí a ti rí i dájú
Ṣàtúnṣe ìsopọ̀ IMAP SSL ti CPython 3.14 nípasẹ̀ SOCKS láìrọ́pò àwọn socket ní àgbáyé tàbí pàdánù ìdánimọ̀ TLS ti olupin mail.
Ìsopọ̀ IMAP SSL lè rìn nípasẹ̀ SOCKS nígbà tí ó ń pa olupin mail mọ́ gẹ́gẹ́ bí alábàákẹ́gbẹ́ TLS rẹ̀. Ibùdó ìsopọ̀ tí ó wúlò ni ibi tí olùgbà ti ń dá ìrìnàjò rẹ̀, kí ìkíni IMAP déédéé àti ìtọ́jú agbára kí ó tó bẹ̀rẹ̀.
Fún CPython 3.14, èyí tí ó tẹ̀le ń ṣàpèjúwe adápatà kékeré kan tí ó ń lo PySocks. Ó ń ṣàtúnṣe àkópọ̀ ìrìnàjò aládàáni kan, nítorí náà pa á mọ́ sí ẹ̀yà imaplib tí a ń tọ́jú:
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()Àwọn orúkọ àti ebute jẹ́ ààyè fún aṣojú àti iṣẹ́ IMAP tí ó ti wà. Fún ibi tí IMAP gbogbogbo tí a gbà láàyè láti lo àwọn aṣojú gbogbogbo, àkójọ aṣojú SOCKS5 ń pèsè àwọn olùdíje; ọ̀kọ̀ọ̀kan gbọ́dọ̀ gbà olùgbàlejò mail àti ebute tí a nílò. Ìgbẹ́kẹ̀lé PySocks ń pèsè ìjíròrò SOCKS; imaplib ṣì ń bẹ̀rẹ̀ ìpàdé mail. Kò sí àrọ́pò socket.socket kankan ní àgbáyé nínú.
Pa ìdánimọ̀ olupin mail mọ́
Orúkọ olùgbàlejò TLS yóò wà ní imap.example. Kì í ṣe orúkọ olùgbàlejò SOCKS. Pípa ssl.create_default_context() kọjá ń mú àwọn àyẹ̀wò ìwé-ẹ̀rí àti orúkọ olùgbàlejò déédéé ṣiṣẹ́ pẹ̀lú ìmọ̀. Socket tí a fi kóòdù ṣe nìkan kò tó láti fi dá àwọn àyẹ̀wò yẹn kalẹ̀.
proxy_rdns=True béèrè pé ọ̀nà SOCKS kí ó tọ́jú orúkọ olùgbàlejò ibi-ìlọ̀. Bí aṣojú bá nílò àkọsílẹ̀, àwọn àríyànjiyàn ẹ̀rí tí ó ń gbà wà nínú ìṣètò ìrìnàjò yẹn. Wọn kì í wọ inú àpótí mail.
Fi ìbẹ̀rẹ̀ ìpàdé lé imaplib lọ́wọ́
Adápatà náà dá TLS stream padà fún olùdá déédéé. Àtúntò open() láti àpẹẹrẹ àtijọ́ lè pàdánù àwọn àfihàn àkókò, ìkópamọ́ àti àwọn ìfojúsọ́nà ìbẹ̀rẹ̀ mìíràn. Nínú CPython 3.14, pàápàá àbáyọ̀ file àtijọ́ jẹ́ ẹ̀yà ìbámu, kì í ṣe pápá tí a lè tún kọ́ lọ́nà ọ̀fẹ́.
Nígbà tí ẹ bá ń ṣe àgbéga ilé-ìkàwé, ẹ ṣàtúnyẹ̀wò àkópọ̀ aládàáni yìí pẹ̀lú orísun tí ó bá a mu. Bí ìtọ́jú ẹ̀ka-ìsàlẹ̀ kò bá yẹ, yan olùgbà mail tí ó ní ojú-ọ̀nà ìrìnàjò aṣojú tí a kọ sílẹ̀. Ìṣètò èyíkéyìí gbọ́dọ̀ pa ìyàsọ́tọ̀ kan náà mọ́: ìsopọ̀ aṣojú, ìrídájú TLS ti ibi-ìlọ̀, lẹ́yìn náà ìjẹ́rìí IMAP.