2012-05-12 12 views
6

मैं इसका उपयोग जीमेल के एसएमटीपी सर्वर के साथ कर रहा हूं, और मैं किसी पते से भेजे गए या प्राप्त ईमेल के लिए आईएमएपी के माध्यम से खोजना चाहता हूं।पायथन आईएमएपी खोज या नामित ईमेल पते से खोजें

यह है कि मैं क्या है:

mail = imaplib.IMAP4_SSL('imap.gmail.com') 

mail.login('user', 'pass') 
mail.list() 
mail.select("[Gmail]/All Mail") 

status, email_ids = mail.search(None, 'TO "[email protected]" OR FROM "[email protected]"') 

त्रुटि की अंतिम पंक्ति है: imaplib.error: SEARCH command error: BAD ['Could not parse command']

सुनिश्चित नहीं हैं कि कैसे मैं अजगर के imaplib भीतर उस तरह OR कथन क्या करना चाहिए हूँ। अगर कोई जल्दी से बता सकता है कि क्या गलत है या मुझे सही दिशा में इंगित करें, तो इसकी सराहना की जाएगी।

उत्तर

14

आपको जो त्रुटि मिल रही है वह सर्वर से उत्पन्न होती है क्योंकि यह खोज क्वेरी को सही तरीके से पार्स नहीं कर सकती है। वैध क्वेरी उत्पन्न करने के लिए RFC 3501 का पालन करें, पृष्ठ 4 9 में इसे संरचना में विस्तार से समझाया गया है।

उदाहरण के लिए अपनी खोज को स्ट्रिंग सही होना चाहिए होने के लिए:

'(OR (TO "[email protected]") (FROM "[email protected]"))' 
+1

धन्यवाद। मैं खोज के लिए सही वाक्यविन्यास की तलाश में था (Google पर कई उपयोगी पृष्ठ नहीं थे)। – Tech163

+1

@ टेक 163 आपका स्वागत है। सर्वोत्तम जानकारी प्राप्त करने के लिए इस तरह के प्रोटोकॉल के साथ आपको सीधे स्रोत (आरएफसी) पर जाना होगा। –

+1

ऐसा प्रतीत होता है कि 'से' को 'हेडर से' में बदलना पड़ सकता है। केवल बाद वाले ने मेरे लिए काम किया। –

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