IMAP এক্সটেনশন

এই ডকুমেন্টে জিমেইল কর্তৃক প্রদত্ত IMAP এক্সটেনশনগুলো এবং ডেভেলপাররা কীভাবে সেগুলো ব্যবহার করতে পারেন, তা বর্ণনা করা হয়েছে। এই ডকুমেন্টটি পড়ার জন্য ধরে নেওয়া হচ্ছে যে, পাঠক IMAP প্রোটোকল সম্পর্কে অবগত আছেন।

সংক্ষিপ্ত বিবরণ

জিমেইল একগুচ্ছ IMAP এক্সটেনশন প্রদান করে, যা IMAP ক্লায়েন্ট নির্মাতাদের IMAP-এর মাধ্যমে আরও জিমেইল-সদৃশ অভিজ্ঞতা দেওয়ার সুযোগ করে দেয়। যেসব ডেভেলপার তাদের ওয়েব বা মোবাইল অ্যাপে জিমেইলের ফিচার যুক্ত করতে চান, তারা এর পরিবর্তে RESTful Gmail API ব্যবহার করতে চাইতে পারেন।

আপনি স্ট্যান্ডার্ড IMAP প্রোটোকলের মাধ্যমে Gmail অ্যাক্সেস করার সময় অথবা OAuth দিয়ে সংযোগ করার সময় এক্সটেনশনগুলি ব্যবহার করতে পারেন।

এক্সটেনশনের উপস্থিতি যাচাই করা হচ্ছে

Gmail তার CAPABILITY কমান্ডের প্রতিক্রিয়ায় এক্সটেনশন সমর্থনের বিষয়টি জানিয়ে থাকে। সমর্থিত ক্যাপাবিলিটির তালিকায় X-GM-EXT-1 এর উপস্থিতি এই নথিতে বর্ণিত এক্সটেনশনগুলোর সমর্থন নির্দেশ করে।

আমরা দৃঢ়ভাবে সুপারিশ করছি যে ক্লায়েন্টরা IMAP ID কমান্ড ( RFC 2971 ) ব্যবহার করে নিজেদের ঘোষণা করুন এবং এই এক্সটেনশনগুলিতে পরিবর্তনের প্রয়োজন হলে একটি ফলব্যাক হিসাবে একটি যোগাযোগের ঠিকানা অন্তর্ভুক্ত করুন।

নিম্নলিখিতটি জিমেইল 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 কমান্ডের বিশেষ-ব্যবহারের সম্প্রসারণ

জিমেইল ‘স্পেশাল-ইউজ মেইলবক্সের জন্য আইম্যাপ লিস্ট এক্সটেনশন’ (IMAP LIST Extension for Special-Use Mailboxes) সমর্থন করে, যা বিশেষ ফোল্ডারগুলোর জন্য নতুন অ্যাট্রিবিউট প্রদান করে। এই অ্যাট্রিবিউটগুলো ক্লায়েন্টকে জানিয়ে দেয় কোন ফোল্ডারগুলো বিশেষ, যেমন \All )। বিশেষ ফোল্ডারগুলোর বর্তমান তালিকায় রয়েছে: স্টারড (Starred), ইম্পরট্যান্ট (Important), সেন্ট আইটেমস (Sent Items), ড্রাফটস (Drafts), স্প্যাম (Spam), অল মেইল ​​(All Mail), এবং ট্র্যাশ (Trash)। সমস্ত LIST রেসপন্সে এই স্পেশাল-ইউজ অ্যাট্রিবিউটগুলো থাকে; এটি কোনো নতুন CAPABILITY নয় বা এমন কিছু নয় যা ক্লায়েন্টদের অবশ্যই সক্রিয় করতে হবে।

নিম্নলিখিতটি 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

প্রতিক্রিয়াটি স্পেশাল-ইউজ স্ট্যান্ডার্ড অনুসরণ করে, তবে জিমেইলের প্রায়োরিটি ইনবক্সের জন্য একটি অতিরিক্ত \Important অ্যাট্রিবিউট যোগ করা হয়েছে (অর্থাৎ, "[Gmail]/Important" )।

XLIST অপ্রচলিত।

জিমেইল-এর নিজস্ব XLIST কমান্ডটি ২০১৩ সালে IMAP স্পেশাল-ইউজ লিস্ট স্ট্যান্ডার্ড-এর প্রচলনের জন্য বাতিল করা হয়েছে। আমরা গ্রাহকদের যত দ্রুত সম্ভব XLIST থেকে স্পেশাল-ইউজ ইন্ডাস্ট্রি স্ট্যান্ডার্ডে স্থানান্তরিত হতে দৃঢ়ভাবে উৎসাহিত করছি। উল্লেখ্য যে, স্পেশাল-ইউজ স্ট্যান্ডার্ডের অ্যাট্রিবিউটের নামগুলো পুরোনো XLIST অ্যাট্রিবিউটের নামের মতো হলেও হুবহু এক নয়।

SEARCH কমান্ডের সম্প্রসারণ: X-GM-RAW

সম্পূর্ণ জিমেইল সার্চ সিনট্যাক্স ব্যবহারের সুযোগ দিতে, জিমেইল X-GM-RAW সার্চ অ্যাট্রিবিউটটি প্রদান করে। SEARCH বা UID SEARCH কমান্ড চালানোর সময় X-GM-RAW অ্যাট্রিবিউটের সাথে পাস করা আর্গুমেন্টগুলো জিমেইল ওয়েব ইন্টারফেসের মতোই ব্যাখ্যা করা হয়।

X-GM-RAW অ্যাট্রিবিউট ব্যবহার করে SEARCH এ করা একটি কলের ট্রান্সক্রিপ্টের নমুনা নিচে দেওয়া হলো:

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

জিমেইল অনন্য মেসেজ আইডি: X-GM-MSGID-এ অ্যাক্সেস

জিমেইল প্রতিটি ইমেইলের জন্য একটি অনন্য মেসেজ আইডি প্রদান করে, যাতে আপনি একাধিক ফোল্ডারের মধ্যে একটি স্বতন্ত্র মেসেজ শনাক্ত করতে পারেন। আপনি FETCH কমান্ডে X-GM-MSGID অ্যাট্রিবিউট ব্যবহার করে এই মেসেজ আইডিটি পেতে পারেন। মেসেজ আইডিটি একটি ৬৪-বিট আনসাইনড ইন্টিজার এবং এটি ওয়েব ইন্টারফেস ও জিমেইল এপিআই- তে ব্যবহৃত আইডি হেক্স স্ট্রিং-এর দশমিক সমতুল্য।

FETCH কমান্ড ব্যবহার করে কোনো বার্তার X-GM-MSGID পুনরুদ্ধার করার জন্য করা একটি কলের প্রতিলিপির উদাহরণ নিচে দেওয়া হলো:

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

আপনি Gmail-এর মেসেজ আইডি ব্যবহার করে কোনো মেসেজের সিকোয়েন্স নম্বর বা UID খুঁজে বের করার জন্য SEARCH বা UID SEARCH কমান্ডে X-GM-MSGID অ্যাট্রিবিউটটিও ব্যবহার করতে পারেন। নিচে UID SEARCH কমান্ড ব্যবহার করে একটি মেসেজের UID খুঁজে বের করার কলের একটি উদাহরণ ট্রান্সক্রিপ্ট দেওয়া হলো:

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

জিমেইল থ্রেড আইডি: X-GM-THRID-এ প্রবেশ করুন

জিমেইল ওয়েব ইন্টারফেসের মতোই, জিমেইল মেসেজের গ্রুপগুলোকে সংযুক্ত করার জন্য একটি থ্রেড আইডি প্রদান করে। আপনি FETCH কমান্ডে X-GM-THRID অ্যাট্রিবিউট ব্যবহার করে এই থ্রেড আইডিটি পেতে পারেন। থ্রেড আইডিটি একটি ৬৪-বিট আনসাইনড ইন্টিজার এবং এটি ওয়েব ইন্টারফেস ও জিমেইল এপিআই- তে ব্যবহৃত আইডি হেক্স স্ট্রিং-এর দশমিক সমতুল্য।

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)

আপনি একটি নির্দিষ্ট থ্রেডের মেসেজগুলোর সিকোয়েন্স নম্বর বা UID খুঁজে বের করার জন্য SEARCH বা UID SEARCH কমান্ডে X-GM-THRID অ্যাট্রিবিউটটিও ব্যবহার করতে পারেন। UID SEARCH কমান্ড ব্যবহার করে কয়েকটি মেসেজের UID পুনরুদ্ধার করার একটি কলের উদাহরণ ট্রান্সক্রিপ্ট নিচে দেওয়া হলো:

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

জিমেইল লেবেলগুলিতে অ্যাক্সেস: X-GM-LABELS

IMAP-এর ক্ষেত্রে Gmail লেবেলগুলোকে ফোল্ডার হিসেবে গণ্য করে। তাই, আপনি ফোল্ডারের উপর কাজ করে এমন সাধারণ IMAP কমান্ড— CREATE , RENAME , এবং DELETE ব্যবহার করে লেবেল পরিবর্তন করতে পারেন। সিস্টেম লেবেল, যা Gmail দ্বারা তৈরি করা হয়, তা সংরক্ষিত থাকে এবং লেবেলের তালিকায় এর আগে "[Gmail]" বা "[GoogleMail]" যুক্ত থাকে। একটি মেইলবক্সের সমস্ত লেবেলের তালিকা পেতে LIST কমান্ডটি ব্যবহার করুন।

আপনি FETCH কমান্ডের সাথে X-GM-LABELS অ্যাট্রিবিউট ব্যবহার করে একটি নির্দিষ্ট মেসেজের লেবেলগুলো পুনরুদ্ধার করতে পারেন। অ্যাট্রিবিউটটি ASTRING এর একটি তালিকা হিসাবে ফেরত আসে, যা প্রয়োজন অনুযায়ী UTF-7-এ এনকোড করা থাকে। RFC দ্বারা সংজ্ঞায়িত ASTRING হলো একটি অ্যাটম বা স্ট্রিং ।

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)

আপনি 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)

আপনি SEARCH বা UID SEARCH কমান্ডে X-GM-LABELS অ্যাট্রিবিউট ব্যবহার করে একটি নির্দিষ্ট লেবেলযুক্ত ফোল্ডারের সমস্ত মেসেজের সিকোয়েন্স নম্বর বা UID খুঁজে বের করতে পারেন। SEARCH কমান্ড ব্যবহার করে কয়েকটি মেসেজের সিকোয়েন্স নম্বর পুনরুদ্ধার করার জন্য করা একটি কলের ট্রান্সক্রিপ্টের উদাহরণ নিচে দেওয়া হলো:

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

তথ্যসূত্র