आईएमएपी एक्सटेंशन

इस दस्तावेज़ में Gmail के दिए गए आईएमएपी एक्सटेंशन के बारे में बताया गया है. साथ ही, यह भी बताया गया है कि डेवलपर उन्हें किस तरह इस्तेमाल कर सकते हैं. इस दस्तावेज़ में आईएमएपी प्रोटोकॉल के बारे में जानकारी है.

खास जानकारी

Gmail, आईएमएपी एक्सटेंशन का एक सेट उपलब्ध कराता है. इससे आईएमएपी क्लाइंट के लेखक, आईएमएपी के ज़रिए Gmail जैसा ज़्यादा अनुभव दे पाते हैं. अपने वेब या मोबाइल ऐप्लिकेशन में Gmail की सुविधाओं को इंटिग्रेट करने वाले डेवलपर, RESTful Gmail API का इस्तेमाल कर सकते हैं.

एक्सटेंशन का इस्तेमाल, स्टैंडर्ड आईएमएपी प्रोटोकॉल की मदद से Gmail को ऐक्सेस करते समय या OAuth की मदद से कनेक्ट करते समय किया जा सकता है.

एक्सटेंशन की मौजूदगी की जांच की जा रही है

CAPABILITY निर्देश के जवाब में Gmail, अपने एक्सटेंशन के साथ काम करने की सुविधा का विज्ञापन दिखाता है. इस दस्तावेज़ में मौजूद एक्सटेंशन किन सुविधाओं के साथ काम करते हैं, इसका पता चलता है कि इस्तेमाल की जा सकने वाली क्षमताओं की सूची में X-GM-EXT-1 मौजूद है.

क्लाइंट को हमारा सुझाव है कि वे आईएमएपी आईडी कमांड (आरएफ़सी 2971) के साथ खुद के बारे में बताएं. अगर इन एक्सटेंशन में बदलाव करना ज़रूरी हो, तो उन्हें संपर्क का पता भी शामिल करें.

Gmail आईएमएपी एंडपॉइंट पर हैंडशेक और CAPABILITY कमांड के इस्तेमाल के उदाहरण यहां दिए गए हैं:

* OK Gimap ready for requests from 127.0.0.1 k2if6111336rvb.0
a001 LOGIN username@gmail.com password
a001 OK username@gmail.com authenticated (Success)
a001 OK Login successful
a002 CAPABILITY
* CAPABILITY IMAP4rev1 UNSELECT LITERAL+ IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1
a002 OK Success
a003 ID ("name" "clientname" "version" "1.2.3" "vendor" "companyname" "contact" "foo@example.com")
* ID ("name" "GImap" "vendor" "Google, Inc." "support-url" "http://mail.google.com/support" "remote-host" "127.0.0.1")
a003 OK Success

LIST कमांड का विशेष-इस्तेमाल वाला एक्सटेंशन

Gmail, खास तौर पर इस्तेमाल किए जाने वाले मेलबॉक्स के लिए आईएमएपी सूची एक्सटेंशन के साथ काम करता है. इससे खास फ़ोल्डर के लिए नए एट्रिब्यूट मिलते हैं. इन एट्रिब्यूट से क्लाइंट को यह पता चलता है कि कौनसे फ़ोल्डर खास हैं (उदाहरण के लिए, \All). खास फ़ोल्डर की मौजूदा सूची में ये शामिल हैं: स्टार के निशान वाले, ज़रूरी, भेजे गए आइटम, ड्राफ़्ट, स्पैम, सभी मेल, और ट्रैश. सभी LIST जवाबों में, 'खास इस्तेमाल' वाले ये एट्रिब्यूट शामिल होते हैं. यह नया CAPABILITY या ऐसा कुछ नहीं है जिसकी क्लाइंट को ENABLEd की ज़रूरत होती है.

LIST को किए गए कॉल की ट्रांसक्रिप्ट का एक उदाहरण यहां दिया गया है:

a004 LIST "" "*"
* LIST (\HasNoChildren) "/" "INBOX"
* LIST (\Noselect \HasChildren) "/" "[Gmail]"
* LIST (\HasNoChildren \All) "/" "[Gmail]/All Mail"
* LIST (\HasNoChildren \Drafts) "/" "[Gmail]/Drafts"
* LIST (\HasNoChildren \Important) "/" "[Gmail]/Important"
* LIST (\HasNoChildren \Sent) "/" "[Gmail]/Sent Mail"
* LIST (\HasNoChildren \Junk) "/" "[Gmail]/Spam"
* LIST (\HasNoChildren \Flagged) "/" "[Gmail]/Starred"
* LIST (\HasNoChildren \Trash) "/" "[Gmail]/Trash"
a004 OK Success

यह जवाब विशेष इस्तेमाल के मानक के हिसाब से दिया गया है.इसमें Gmail के मुख्य इनबॉक्स के लिए, एक और \Important एट्रिब्यूट जोड़ा गया है. उदाहरण के लिए, "[Gmail]/Important".

XLIST अब काम नहीं करता

साल 2013 में, Gmail के लिए खास तौर पर इस्तेमाल किए जाने वाले XLIST कमांड की जगह आईएमएपी के खास इस्तेमाल की सूची को लागू कर दिया गया था. क्लाइंट को जितनी जल्दी हो सके, XLIST से खास इस्तेमाल वाले इंडस्ट्री स्टैंडर्ड पर माइग्रेट करने का सुझाव दिया जाता है. ध्यान दें कि 'खास इस्तेमाल' के लिए स्टैंडर्ड एट्रिब्यूट के नाम मिलते-जुलते होते हैं, लेकिन XLIST एट्रिब्यूट के लेगसी नामों से मिलते-जुलते नहीं होते.

Search कमांड का एक्सटेंशन: X-GM-RAW

पूरे Gmail सर्च सिंटैक्स का ऐक्सेस देने के लिए, Gmail X-GM-RAW खोज एट्रिब्यूट देता है. SEARCH या UID SEARCH कमांड लागू करते समय, X-GM-RAW एट्रिब्यूट के साथ पास किए गए तर्क को Gmail के वेब इंटरफ़ेस की तरह ही समझा जाएगा.

X-GM-RAW एट्रिब्यूट का इस्तेमाल करके, SEARCH को किए गए कॉल की ट्रांसक्रिप्ट का उदाहरण यहां दिया गया है:

a005 SEARCH X-GM-RAW "has:attachment in:unread"
* SEARCH 123 12344 5992
a005 OK SEARCH (Success)

Gmail के यूनीक मैसेज आईडी का ऐक्सेस: X-GM-MSGID

Gmail हर ईमेल के लिए एक यूनीक मैसेज आईडी देता है, ताकि एक से ज़्यादा फ़ोल्डर में एक यूनीक मैसेज पहचाना जा सके. इस मैसेज आईडी को वापस पाने के लिए, FETCH निर्देश में X-GM-MSGID एट्रिब्यूट का इस्तेमाल किया जा सकता है. मैसेज आईडी, 64-बिट ऐसा पूर्णांक होता है जिसमें साइन इन नहीं किया गया है. साथ ही, यह वेब इंटरफ़ेस और Gmail API में इस्तेमाल की जाने वाली आईडी हेक्स स्ट्रिंग के दशमलव के बाद का हिस्सा होता है.

FETCH कमांड की मदद से, मैसेज के X-GM-MSGID को वापस पाने के लिए, कॉल का एक उदाहरण यहां दिया गया है:

a006 FETCH 1 (X-GM-MSGID)
* 1 FETCH (X-GM-MSGID 1278455344230334865)
a006 OK FETCH (Success)

Gmail के मैसेज आईडी के क्रम संख्या या UID का पता लगाने के लिए, X-GM-MSGID एट्रिब्यूट का इस्तेमाल SEARCH या UID SEARCH निर्देशों में भी किया जा सकता है. UID SEARCH निर्देश का इस्तेमाल करके, किसी मैसेज का UID वापस पाने के लिए, कॉल के ट्रांसक्रिप्ट का एक उदाहरण यहां दिया गया है:

a007 UID SEARCH X-GM-MSGID 1278455344230334865
* SEARCH 1
a007 OK SEARCH (Success)

Gmail थ्रेड आईडी का ऐक्सेस: X-GM-THRID

Gmail, मैसेज के ग्रुप को Gmail वेब इंटरफ़ेस की तरह ही जोड़ने के लिए थ्रेड आईडी उपलब्ध कराता है. FETCH कमांड में दिए गए X-GM-THRID एट्रिब्यूट की मदद से, इस थ्रेड आईडी को वापस लाया जा सकता है. थ्रेड आईडी, 64-बिट का बिना हस्ताक्षर वाला पूर्णांक होता है. यह वेब इंटरफ़ेस और Gmail API में इस्तेमाल की जाने वाली आईडी हेक्स स्ट्रिंग के दशमलव के बाद का हिस्सा होता है.

FETCH निर्देश की मदद से, कई मैसेज (दो थ्रेड में) के X-GM-THRID को वापस पाने के लिए, कॉल के ट्रांसक्रिप्ट का उदाहरण यहां दिया गया है:

a008 FETCH 1:4 (X-GM-THRID)
* 1 FETCH (X-GM-THRID 1278455344230334865)
* 2 FETCH (X-GM-THRID 1266894439832287888)
* 3 FETCH (X-GM-THRID 1266894439832287888)
* 4 FETCH (X-GM-THRID 1266894439832287888)
a008 OK FETCH (Success)

X-GM-THRID एट्रिब्यूट का इस्तेमाल, SEARCH या UID SEARCH कमांड में भी किया जा सकता है, ताकि किसी थ्रेड में क्रम संख्या या UID मैसेज को ढूंढा जा सके. UID SEARCH कमांड का इस्तेमाल करके, कई मैसेज के UID पाने के लिए, कॉल के ट्रांसक्रिप्ट का एक उदाहरण यहां दिया गया है:

a009 UID SEARCH X-GM-THRID 1266894439832287888
* SEARCH 2 3 4
a009 OK Search (Success)

Gmail लेबल का ऐक्सेस: X-GM-LABEL

आईएमएपी के लिए, Gmail, लेबल को फ़ोल्डर की तरह इस्तेमाल करता है. इसलिए, स्टैंडर्ड आईएमएपी निर्देशों, CREATE, RENAME, और DELETE का इस्तेमाल करके लेबल में बदलाव किए जा सकते हैं, जो फ़ोल्डर पर काम करते हैं. सिस्टम लेबल, ऐसे लेबल होते हैं जिन्हें Gmail ने बनाया है. ये लेबल की सूची में रिज़र्व होते हैं और इससे पहले "[Gmail]" या "[GoogleMail]" का इस्तेमाल किया जाता है. मेलबॉक्स के लिए लेबल की पूरी सूची पाने के लिए, XLIST निर्देश का इस्तेमाल करें.

FETCH निर्देश की मदद से X-GM-LABELS एट्रिब्यूट का इस्तेमाल करके, किसी मैसेज के लेबल वापस पाए जा सकते हैं. एट्रिब्यूट को ASTRING की सूची के तौर पर दिखाया जाता है. इसे सही तरह से UTF-7 में एन्कोड किया जाता है. ASTRING एक atom या स्ट्रिंग होती है, जैसा कि आरएफ़सी के मुताबिक होता है.

FETCH निर्देश की मदद से, कई मैसेज के X-GM-LABELS पाने के लिए कॉल का ट्रांसक्रिप्ट का उदाहरण यहां दिया गया है:

a010 FETCH 1:4 (X-GM-LABELS)
* 1 FETCH (X-GM-LABELS (\Inbox \Sent Important "Muy Importante"))
* 2 FETCH (X-GM-LABELS (foo))
* 3 FETCH (X-GM-LABELS ())
* 4 FETCH (X-GM-LABELS (\Drafts))
a010 OK FETCH (Success)

लेबल को मैसेज में X-GM-LABELS एट्रिब्यूट के साथ STORE कमांड का इस्तेमाल करके जोड़ा जा सकता है. नीचे एक मैसेज में लेबल जोड़ने की जानकारी देने वाली ट्रांसक्रिप्ट का एक उदाहरण दिया गया है:

a011 STORE 1 +X-GM-LABELS (foo)
* 1 FETCH (X-GM-LABELS (\Inbox \Sent Important "Muy Importante" foo))
a011 OK STORE (Success)

X-GM-LABELS एट्रिब्यूट का इस्तेमाल, SEARCH या UID SEARCH निर्देशों में भी किया जा सकता है. इससे, दिए गए लेबल वाले फ़ोल्डर में मौजूद सभी मैसेज की क्रम संख्या या UID मैसेज को ढूंढा जा सकता है. SEARCH कमांड का इस्तेमाल करके, कई मैसेज के क्रम की संख्या पाने के लिए, कॉल का ट्रांसक्रिप्ट का उदाहरण यहां दिया गया है:

a012 SEARCH X-GM-LABELS foo
* SEARCH 1 2
a012 OK SEARCH (Success)

References