2012-03-31 15 views
11

मैं एक IMAP क्लाइंट को कार्यान्वित कर रहा हूं, और मुझे IMAP मेलबॉक्स सिंक्रनाइज़ेशन के साथ कोई समस्या है।IMAP सिंक्रनाइज़ेशन

सबसे पहले, IMAP सर्वर से नए मेल लाने के लिए ठीक है, लेकिन मुझे नहीं पता कि मेलबॉक्स से हटाए गए संदेशों को कैसे ढूंढें।

क्या मुझे सर्वर से सभी संदेश प्राप्त करना चाहिए और इसे स्थानीय डेटा के साथ सिंक्रनाइज़ करने के साथ तुलना करना चाहिए?

उत्तर

21

सामान्य दृष्टिकोण प्रत्येक फ़ोल्डर के लिए निम्न दो आदेश पर अमल करने के लिए है:

. EXAMINE "<foldername>" 
. FETCH 1:* (UID FLAGS) 

पहले आदेश का चयन करता है एक फ़ोल्डर रिटर्न UIDVALIDITY इस फ़ोल्डर की। यदि यह मान पहले इस फ़ोल्डर के लिए UIDVALIDITY से मेल खाता है, तो आप यूआईडी पर भरोसा कर सकते हैं। दूसरा आदेश चयनित फ़ोल्डर में प्रत्येक मेल के लिए यूआईडी और सभी FLAGS लौटाता है।

  • आप पता लगाने के लिए जो मेल जोड़ा या हटा दिया गया है यूआईडी उपयोग करना चाहिए। ध्यान दें कि यूआईडी को बदलने के बिना किसी ईमेल की सामग्री को बदला नहीं जा सकता है।
  • मूल IMAP में, FLAGS एकमात्र विशेषताएं हैं जिन्हें ईमेल के लिए बदला जा सकता है। झंडे में पढ़ने वाले मेल (\Seen) और हटाए गए मेल (\Deleted) के बारे में जानकारी होती है।

यह दृष्टिकोण अधिकांश ग्राहकों द्वारा उपयोग किया जाता है, और अधिकांश IMAP सर्वर उनके लिए अनुकूलित किए जाते हैं। सीमित कारक आमतौर पर क्लाइंट और सर्वर के बीच उपलब्ध बैंडविड्थ होता है।

निम्न स्थितियों में थोड़ा और अधिक जटिल हैं:

  • अगर UIDVALIDITY से मेल नहीं खाता क्या किया जाना चाहिए? आईएमएपी विनिर्देश के लिए आवश्यक है कि सर्वर इस मूल्य में अनावश्यक परिवर्तनों से बचने के लिए अपना सर्वश्रेष्ठ प्रयास करें।
  • क्या चालित मेल (वास्तव में कॉपी किए गए मेल) के लिए अनुकूलन होना चाहिए? मूल IMAP में, आप यह नहीं पहचान सकते कि एक ईमेल किसी अन्य ईमेल की एक प्रति है - भले ही स्रोत फ़ोल्डर में ईमेल अभी भी मौजूद है या फिर इसे हटा दिया गया है या फिर इसे हटा दिया गया है या नहीं।
+1

UIDPLUS एक्सटेंशन स्थानांतरित/कॉपी किए गए ईमेल के साथ मदद कर सकता है। हटाए गए संदेशों को खोजने का एक और तरीका यूआईडी खोज का उपयोग करना है: 'परीक्षा "फ़ोल्डर" 'फिर' यूआईडी खोज 1: * '। यह वर्तमान में मेलबॉक्स में सभी यूआईडी की एक सूची प्रदान करेगा, जिसकी तुलना आपके स्थानीय कैश से की जा सकती है। – Max

10

हो सकता है कि अपने अनुप्रयोग के लिए बहुत देर हो चुकी है, लेकिन आप इस आरएफसी में एक पूरा IMAP समन्वयन रणनीति पा सकते हैं: http://tools.ietf.org/html/rfc4549!

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