2010-08-02 16 views
5

न तो poplib या imaplib प्रॉक्सी समर्थन प्रदान करने लगते हैं और मुझे अपने Google-fu प्रयासों के बावजूद इसके बारे में अधिक जानकारी नहीं मिली।पायथन - मैं प्रॉक्सी के माध्यम से पीओपी या आईएमएपी के माध्यम से ईमेल कैसे प्राप्त कर सकता हूं?

मैं विभिन्न आईमैप/पॉप सक्षम सर्वरों से ईमेल लाने के लिए अजगर का उपयोग कर रहा हूं और इसे प्रॉक्सी के माध्यम से करने में सक्षम होना चाहिए।

आदर्श रूप में, मैं इसे सीधे पाइथन में करने में सक्षम होना चाहता हूं लेकिन प्रॉक्सी के माध्यम से जाने के लिए सभी ट्रैफ़िक को मजबूर करने के लिए एक रैपर (बाहरी प्रोग्राम/स्क्रिप्ट, ओएसएक्स आधारित) का उपयोग करना पर्याप्त हो सकता है अगर मुझे नहीं मिल रहा है कुछ भी बेहतर है।

क्या कोई मुझे हाथ दे सकता है? मैं कल्पना नहीं कर सकता कि मैं अकेला हूं जिसे कभी भी पाइथन में प्रॉक्सी के माध्यम से ईमेल लाने की आवश्यकता होती है ...

** संपादित करें संपादित करें HTTP को हटाने के लिए संपादित करें संपादित करें, क्योंकि जब मैं हूं तो मुझे इतना तेज टाइप नहीं करना चाहिए थके हुए, उन लोगों के लिए खेद है **

प्रॉक्सी जो मैं उपयोग करने की योजना बना रहा हूं वह http के अलावा मोजे की अनुमति देता है।

पॉप या इमाप http के माध्यम से काम करने से ज्यादा समझ नहीं आएगी (स्टेटस बनाम स्टेटलेस) लेकिन मेरी समझ यह है कि मोजे मुझे जो कुछ भी करना चाहते हैं उसे करने की अनुमति देंगे।

अब तक जो कुछ भी मैं चाहता हूं उसे प्राप्त करने का एकमात्र तरीका imaplib की गंदे हैकिंग लगता है ... अगर मैं कर सकता हूं तो इससे बचें।

+1

मैं उत्सुक हूं: आप पाइथन के बिना भी एक HTTP प्रॉक्सी के माध्यम से imap सुरंग कैसे करेंगे? – hop

+0

शीर्षक से हटाया गया एचटीपी, मेरी गलती, मोजे का मतलब ... – Vermillon

उत्तर

0

यदि मैं आपको सही ढंग से समझता हूं तो आप एक गोल छेद में एक वर्ग पेग लगाने की कोशिश कर रहे हैं।

एक HTTP प्रॉक्सी केवल HTTP "बात" करने के बारे में जानता है, इसलिए सीधे पीओपी या आईएमएपी सर्वर से कनेक्ट नहीं हो सकता है।

यदि आप ऐसा करना चाहते हैं तो आपको मेल सर्वर से बात करने के लिए कहीं अपने सर्वर को लागू करने की आवश्यकता होगी। यह HTTP अनुरोध प्राप्त करेगा और फिर मेल सर्वर को उपयुक्त कॉल करेगा। उदा .:

यह कैसे व्यावहारिक होगा मैं जब से तुम एक stateless एक में स्टेटफुल प्रोटोकॉल कन्वर्ट करने के लिए होगा पता नहीं है।

+0

आप 100% सही हैं, मैं मोजे की क्षमता का उल्लेख करना भूल गया। मैंने शीर्षक से HTTP हटा दिया, इसके लिए खेद है, मैं थक गया हूं; पी – Vermillon

+3

HTTP प्रॉक्सी की 'कनेक्ट' विधि आपको किसी भी टीसीपी क्लाइंट-> सर्वर प्रोटोकॉल को चलाने देगी। * अगर * HTTP प्रॉक्सी इसे अनुमति देता है, तो अधिकांश डिफ़ॉल्ट कॉन्फ़िगरेशन पोर्ट 443 पर 'कनेक्ट' अनुरोध प्रतिबंधित करते हैं। – MattH

+0

मैं समझता हूं कि आपका क्या मतलब है लेकिन फिर थंडरबर्ड http प्रॉक्सी से कैसे जुड़ता है? –

4

उत्तर ... एक त्वरित और गंदा तरीका Socksipy का उपयोग कर परेशानी के बिना एक प्रॉक्सी के माध्यम से जाने के लिए एक अजगर स्क्रिप्ट से यातायात के लिए मजबूर करने नहीं है (धन्यवाद मुझे इस तरह से इशारा करते हुए के लिए Matth)

import socks 
import socket 
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS4,proxy_ip,port,True) 
socket.socket = socks.socksocket 

वैश्विक सॉकेट ओवरराइड स्पष्ट रूप से थोड़ा क्रूर है, लेकिन जब तक मैं समय ठीक से उपवर्ग IMAP4 और IMAP4_SSL के लिए मिल त्वरित सुधार के रूप में काम करता है।

+0

+1 यह SMTP_SSL के लिए भी काम करता है: डी – alexandrul

+0

मेरे लिए काम नहीं करता है, मुझे "IOError: [Errno सॉकेट त्रुटि] ('टाइम आउट',)", कोई सुझाव है? – ImadOS

संबंधित मुद्दे

 संबंधित मुद्दे