इस दस्तावेज़ में, Gmail की ओर से उपलब्ध कराए गए आईएमएपी एक्सटेंशन के बारे में बताया गया है. साथ ही, यह भी बताया गया है कि डेवलपर इनका इस्तेमाल कैसे कर सकते हैं. इस दस्तावेज़ में, यह मान लिया गया है कि आपको आईएमएपी प्रोटोकॉल के बारे में जानकारी है.
खास जानकारी
Gmail, आईएमएपी एक्सटेंशन का एक सेट उपलब्ध कराता है. इससे आईएमएपी क्लाइंट के लेखक, आईएमएपी के ज़रिए Gmail जैसा बेहतर अनुभव दे पाते हैं. डेवलपर, Gmail की सुविधाओं को अपने वेब या मोबाइल ऐप्लिकेशन में इंटिग्रेट करने के लिए, RESTful Gmail API का इस्तेमाल कर सकते हैं.
इन एक्सटेंशन का इस्तेमाल, स्टैंडर्ड आईएमएपी प्रोटोकॉल के ज़रिए Gmail को ऐक्सेस करते समय या OAuth के ज़रिए कनेक्ट करते समय किया जा सकता है.
एक्सटेंशन की मौजूदगी की जांच करना
Gmail, CAPABILITY
कमांड के जवाब में एक्सटेंशन इस्तेमाल करने की सुविधा का विज्ञापन करता है. इस दस्तावेज़ में एक्सटेंशन के साथ काम करने वाली सुविधाओं की सूची में X-GM-EXT-1
मौजूद होने का मतलब है कि एक्सटेंशन के साथ काम करने वाली सुविधाएं उपलब्ध हैं.
क्लाइंट को हमारा सुझाव है कि वे IMAP ID कमांड (RFC 2971) का इस्तेमाल करके, खुद के बारे में जानकारी दें. साथ ही, संपर्क पता भी शामिल करें, ताकि अगर इन एक्सटेंशन में बदलाव करने की ज़रूरत पड़े, तो इसका इस्तेमाल किया जा सके.
Gmail IMAP एंडपॉइंट पर, हैंडशेक और 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, खास इस्तेमाल वाले मेलबॉक्स के लिए आईएमएपी LIST एक्सटेंशन के साथ काम करता है. यह खास फ़ोल्डर के लिए नए एट्रिब्यूट उपलब्ध कराता है. इन एट्रिब्यूट से क्लाइंट को पता चलता है कि कौनसे फ़ोल्डर खास हैं. जैसे, \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 का अब इस्तेमाल नहीं किया जा सकता
Gmail के लिए खास तौर पर इस्तेमाल की जाने वाली XLIST
कमांड को 2013 में बंद कर दिया गया था. इसके बजाय, आईएमएपी स्पेशल-यूज़ लिस्ट स्टैंडर्ड का इस्तेमाल किया जाता है. हमारा सुझाव है कि क्लाइंट, XLIST
से Special-Use इंडस्ट्री स्टैंडर्ड पर जल्द से जल्द माइग्रेट करें. ध्यान दें कि खास इस्तेमाल वाले स्टैंडर्ड एट्रिब्यूट के नाम, लेगसी 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)
X-GM-MSGID
एट्रिब्यूट का इस्तेमाल, SEARCH
या UID SEARCH
कमांड में भी किया जा सकता है. इससे, Gmail के मैसेज आईडी के हिसाब से किसी मैसेज के क्रम संख्या या UID
का पता लगाया जा सकता है. यहां 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
s का पता लगाया जा सकता है. UID SEARCH
कमांड का इस्तेमाल करके, कई मैसेज के UID
पाने के लिए किए गए कॉल की ट्रांसक्रिप्ट का उदाहरण यहां दिया गया है:
a009 UID SEARCH X-GM-THRID 1266894439832287888
* SEARCH 2 3 4
a009 OK Search (Success)
Gmail के लेबल का ऐक्सेस: X-GM-LABELS
Gmail, आईएमएपी के लिए लेबल को फ़ोल्डर के तौर पर मानता है. इसलिए, लेबल में बदलाव करने के लिए स्टैंडर्ड आईएमएपी कमांड, CREATE
, RENAME
, और DELETE
का इस्तेमाल किया जा सकता है. ये कमांड फ़ोल्डर पर काम करती हैं. सिस्टम लेबल, Gmail बनाता है. ये लेबल रिज़र्व होते हैं और लेबल की सूची में "[Gmail]" या "[GoogleMail]" से पहले जोड़े जाते हैं. किसी मेलबॉक्स के सभी लेबल की सूची पाने के लिए, XLIST
कमांड का इस्तेमाल करें.
किसी मैसेज के लेबल पाने के लिए, X-GM-LABELS
कमांड के साथ X-GM-LABELS
एट्रिब्यूट का इस्तेमाल किया जा सकता है.FETCH
इस एट्रिब्यूट को ASTRING
की सूची के तौर पर दिखाया जाता है. इसे ज़रूरत के मुताबिक UTF-7 में कोड में बदला जाता है. ASTRING
, RFC के मुताबिक एक atom या string होता है.
X-GM-LABELS
कमांड का इस्तेमाल करके, कई मैसेज के X-GM-LABELS
को वापस पाने के लिए किए गए कॉल की ट्रांसक्रिप्ट का उदाहरण यहां दिया गया है:FETCH
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)
STORE
एट्रिब्यूट के साथ STORE
कमांड का इस्तेमाल करके, मैसेज में लेबल जोड़े जा सकते हैं.X-GM-LABELS
यहां एक ट्रांसक्रिप्ट का उदाहरण दिया गया है, जिसमें किसी मैसेज में लेबल जोड़ने का तरीका बताया गया है:
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)
रेफ़रंस
- IMAP: RFC 3501: INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1
- आईएमएपी आईडी: RFC 2971: IMAP4 ID EXTENSION
- IMAP Special-Use: RFC 6154: IMAP LIST Extension for Special-Use Mailboxes