CPython 3.14 imaplib SOCKS દ્વારા ચકાસાયેલ TLS સાથે
સોકેટને વૈશ્વિક રીતે બદલ્યા વિના અથવા મેઇલ સર્વરની TLS ઓળખ ગુમાવ્યા વિના CPython 3.14નું IMAP SSL કનેક્શન SOCKS દ્વારા અનુકૂળ કરો.
IMAP SSL કનેક્શન મેઇલ સર્વરને તેના TLS સાથી તરીકે રાખીને SOCKS દ્વારા પસાર થઈ શકે છે. ઉપયોગી એકીકરણ બિંદુ એ છે જ્યાં ક્લાયન્ટ તેનું પરિવહન બનાવે છે, સામાન્ય IMAP અભિવાદન અને ક્ષમતા સંચાલન શરૂ થાય તે પહેલાં.
CPython 3.14 માટે, નીચેનું PySocks વાપરતું એક નાનું અનુકૂલક દર્શાવે છે. તે ખાનગી પરિવહન હૂકને બદલે છે, તેથી તેને જાળવવામાં આવતી imaplib આવૃત્તિ સાથે બાંધેલું રાખો:
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()નામો અને પોર્ટ પહેલેથી ઉપલબ્ધ પ્રોક્સી અને IMAP સેવા માટે સ્થાનધારક છે. જાહેર પ્રોક્સી વાપરવાની પરવાનગી ધરાવતા જાહેર IMAP ગંતવ્ય માટે, SOCKS5 પ્રોક્સી સૂચિ ઉમેદવારો આપે છે; દરેકે જરૂરી મેઇલ યજમાન અને પોર્ટને મંજૂરી આપવી જોઈએ. PySocks નિર્ભરતા SOCKS વાટાઘાટ પૂરી પાડે છે; imaplib હજી પણ મેઇલ સત્ર શરૂ કરે છે. કોઈ વૈશ્વિક socket.socket બદલી સામેલ નથી.
મેઇલ સર્વરની ઓળખ જાળવો
TLS યજમાનનામ imap.example જ રહે છે. તે SOCKS યજમાનનામ નથી. ssl.create_default_context() પસાર કરવાથી સામાન્ય પ્રમાણપત્ર અને યજમાનનામ તપાસો જાણી જોઈને સક્રિય થાય છે; ફક્ત એન્ક્રિપ્ટેડ સોકેટ તે તપાસો સ્થાપિત કરવા પૂરતું નથી.
proxy_rdns=True SOCKS માર્ગને ગંતવ્ય યજમાનનામ સંભાળવા કહે છે. જો પ્રોક્સીને ખાતું જોઈએ, તો તેના સમર્થિત ઓળખપત્ર દલીલો તે પરિવહન રૂપરેખાંકનના ભાગ છે. તે મેઇલબોક્સમાં લોગિન કરતા નથી.
સત્રની શરૂઆત imaplib પર છોડો
અનુકૂલક TLS પ્રવાહને સામાન્ય કન્સ્ટ્રક્ટરને પાછો આપે છે. જૂના ઉદાહરણમાંથી open() ફરી અમલમાં મૂકવાથી સમયમર્યાદા પરિમાણો, બફરિંગ અને અન્ય પ્રારંભિક અપેક્ષાઓ ચૂકી શકાય છે. CPython 3.14માં, જૂની file ઍક્સેસ પણ મુક્તપણે પુનઃનિર્માણ કરવાનું ક્ષેત્ર નહીં, પરંતુ સુસંગતતા ગુણધર્મ છે.
લાઇબ્રેરી અપગ્રેડ વખતે આ ખાનગી હૂકને અનુરૂપ સ્રોત સામે સમીક્ષા કરો. જો ઉપવર્ગ જાળવવો યોગ્ય ન હોય, તો દસ્તાવેજીકૃત પ્રોક્સી પરિવહન ઇન્ટરફેસ ધરાવતું મેઇલ ક્લાયન્ટ પસંદ કરો. કોઈપણ ગોઠવણીએ સમાન વિભાજન જાળવવું જોઈએ: પ્રોક્સી કનેક્શન, ગંતવ્યની TLS ચકાસણી, પછી IMAP પ્રમાણીકરણ.