2012-11-15 16 views
7

के लिए पायथन आईएमएपी खोज मैं उन सभी ईमेल लाने की कोशिश कर रहा हूं जिनके विषय "नया आदेश" से शुरू होता है लेकिन मुझे इसे समझने की प्रतीत नहीं होती है। वर्तमान में मैं इस तरह के सेटअप के साथ एक सटीक मिलान की तलाश कर सकता हूं ...आंशिक विषय

result, data = M.uid('search', None, '(HEADER Subject "Subject Here")') 

हालांकि यह किसी भी संदेश को पुनर्प्राप्त नहीं करेगा जो सटीक मिलान नहीं है। मैं आंशिक मैच करने के बारे में कैसे जाउंगा?

यदि यह महत्वपूर्ण है कि मैं जीमेल के आईमैप सर्वर से बात कर रहा हूं।

धन्यवाद

+0

क्या API/पुस्तकालय आप उपयोग कर रहे, यह भी क्या 'm' है? – John

+0

आपको http://stackoverflow.com/a/642988/322909 उपयोगी भी मिल सकता है। – John

+1

मैं imaplib लाइब्रेरी का उपयोग कर रहा हूं और एम एक IMAP4 ऑब्जेक्ट है। मैंने आशा व्यक्त की थी कि वांछित विषयों वाले संदेशों को केवल नीचे खींचें और हर एक संदेश जो मुझे विश्वास है कि वे आपके लिंक में क्या कर रहे हैं, हालांकि मैं गलत हो सकता हूं। – Kazurik

उत्तर

14

IMAP RFCSEARCH-स्ट्रिंग के रूप में अपनी मिलान के सभी करना चाहिए के अनुसार मेल खाता है:

In all search keys that use strings, a message matches the key if the string is a substring of the field. The matching is case-insensitive.

इसलिए, एक खोज

M.uid('search', None, 'HEADER Subject "New Order"') 

जहां New Order कहीं भी होता है सभी संदेशों से मेल खाना चाहिए विषय में यदि ऐसा नहीं है, तो आपको Google को सूचित करना चाहिए कि उनका सर्वर IMAP को ठीक से लागू नहीं करता है। इस बीच आप

M.uid('search', None, 'SUBJECT "New Order"') 

इसके अलावा में के रूप में SUBJECT कुंजी का उपयोग कर की कोशिश कर सकते, Google's IMAP extension documentation के अनुसार आप

M.uid('search', None, r'X-GM-RAW "subject:\"New Order\""') 
+1

मुझे पता चला कि क्या गलत हो रहा था। Google/gmail मानता है कि सभी खोज शब्द हैं जिसका अर्थ है कि '(हेडर विषय "विषय यहां")' विषय के लिए अतिरिक्त शब्द यहां विषय "जैसे मेल खाता है लेकिन" विषय यहां 5 "नहीं। मुझे अभी भी यकीन नहीं है कि जीमेल के साथ गैर-शब्द खोज कैसे करें या यदि यह भी संभव है। – Kazurik

+0

आपको gmails विस्तारित खोज वाक्यविन्यास का उपयोग करना होगा। वे केवल सामान्य खोज के लिए शब्द उन्मुख खोजों का समर्थन करते हैं। (एक्स-जीएम-कच्चा बिट जो उन्होंने प्रदान किया) – Max

+1

जब मैं "एम.यूड ('सर्च', कोई नहीं, आरएक्स-जीएम-रॉ" विषय चलाता हूं: \ "नया ऑर्डर \" "')" मुझे निम्नलिखित मिलता है त्रुटि: "imaplib.error: यूआईडी कमांड त्रुटि: बीएडी ['कमांड पार्स नहीं कर सका']"। कोई विचार क्यों हो सकता है? – Kazurik

4

में के रूप में X-GM-RAW कुंजी और एक जीमेल खोज स्ट्रिंग इस के लिए काम किया उपयोग करने के लिए सक्षम हो सकता है मुझे:

mail.uid('search', None, r'(X-GM-RAW "subject:\"New Order\"")') 
-2

यह मेरे लिए काम किया:

01 खोज के लिए

स्वरूप (EmailAttribute "your searchstring")

आशा है कि यह आप के लिए काम करता है।

0

यह मेरे लिए काम किया:

result, data = m.search(None, 'X-GM-RAW', 'subject: New Order') 
संबंधित मुद्दे