این سند افزونه های IMAP ارائه شده توسط Gmail و نحوه استفاده از آنها توسط توسعه دهندگان را شرح می دهد. این سند آشنایی با پروتکل IMAP را فرض می کند.
نمای کلی
Gmail مجموعهای از برنامههای افزودنی IMAP را ارائه میکند تا به نویسندگان سرویس گیرندههای IMAP اجازه دهد تجربهای شبیه به Gmail را از طریق IMAP ارائه دهند. برنامهنویسانی که ویژگیهای Gmail را در برنامههای وب یا تلفن همراه خود ادغام میکنند، ممکن است بخواهند از RESTful Gmail API استفاده کنند.
برنامههای افزودنی ممکن است هنگام دسترسی به Gmail از طریق پروتکل استاندارد IMAP یا هنگام اتصال از طریق OAuth استفاده شوند.
بررسی وجود برنامه های افزودنی
جیمیل پشتیبانی برنامههای افزودنی خود را در پاسخ به فرمان CAPABILITY
تبلیغ میکند. پشتیبانی از برنامه های افزودنی در این سند با وجود X-GM-EXT-1
در لیست قابلیت های پشتیبانی شده نشان داده شده است.
به مشتریان اکیداً توصیه میشود که خود را با فرمان IMAP ID ( RFC 2971 ) اعلام کنند و در صورت نیاز به تغییرات در این برنامههای افزودنی، یک آدرس تماس را بهعنوان بازگشتی وارد کنند.
در زیر نمونه ای از دست دادن و استفاده از دستور CAPABILITY
در نقطه پایانی Gmail IMAP آورده شده است:
* 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 از برنامه افزودنی IMAP 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
پاسخ از استاندارد استفاده ویژه پیروی می کند و یک ویژگی \Important
اضافی برای صندوق ورودی اولویتی Gmail (یعنی "[Gmail]/Important"
اضافه شده است.
XLIST منسوخ شده است
فرمان XLIST
مخصوص Gmail در سال 2013 به نفع استاندارد فهرست استفاده ویژه IMAP منسوخ شد. مشتریان به شدت تشویق می شوند که در اسرع وقت از XLIST
به استاندارد صنعت استفاده ویژه مهاجرت کنند. توجه داشته باشید که نامهای ویژگی استاندارد Special-Use مشابه نامهای ویژگی XLIST
قدیمی هستند، اما یکسان نیستند.
پسوند فرمان SEARCH: X-GM-RAW
برای دسترسی به سینتکس کامل جستجوی Gmail، Gmail ویژگی جستجوی X-GM-RAW
را ارائه میکند. آرگومان هایی که همراه با ویژگی X-GM-RAW
هنگام اجرای دستورات SEARCH
یا UID SEARCH
ارسال می شوند، به همان روشی که در رابط وب Gmail تفسیر می شوند.
در زیر نمونه ای از رونوشت فراخوانی به SEARCH
با استفاده از ویژگی X-GM-RAW
است:
a005 SEARCH X-GM-RAW "has:attachment in:unread"
* SEARCH 123 12344 5992
a005 OK SEARCH (Success)
دسترسی به شناسه پیام منحصر به فرد Gmail: X-GM-MSGID
Gmail یک شناسه پیام منحصر به فرد برای هر ایمیل ارائه می دهد تا یک پیام منحصر به فرد در چندین پوشه شناسایی شود. بازیابی این شناسه پیام از طریق ویژگی X-GM-MSGID
در فرمان FETCH
پشتیبانی می شود. شناسه پیام یک عدد صحیح بدون علامت 64 بیتی است و معادل اعشاری برای رشته شش گوش شناسه استفاده شده در رابط وب و Gmail API است.
در زیر نمونه ای از رونوشت یک تماس برای بازیابی X-GM-MSGID
یک پیام با دستور FETCH
است:
a006 FETCH 1 (X-GM-MSGID)
* 1 FETCH (X-GM-MSGID 1278455344230334865)
a006 OK FETCH (Success)
ویژگی X-GM-MSGID
همچنین ممکن است در دستورات SEARCH
یا UID SEARCH
برای یافتن اعداد دنباله یا UID
یک پیام با شناسه پیام Gmail استفاده شود. در زیر نمونه ای از رونوشت یک تماس برای بازیابی UID
یک پیام با استفاده از دستور UID SEARCH
است:
a007 UID SEARCH X-GM-MSGID 1278455344230334865
* SEARCH 1
a007 OK SEARCH (Success)
دسترسی به شناسه رشته Gmail: X-GM-THRID
Gmail یک شناسه رشته برای مرتبط کردن گروههای پیامها به همان روشی که در رابط وب Gmail وجود دارد، ارائه میکند. بازیابی این شناسه رشته از طریق ویژگی X-GM-THRID
در فرمان FETCH
پشتیبانی می شود. شناسه رشته یک عدد صحیح بدون علامت 64 بیتی است و معادل اعشاری برای رشته شش گوش شناسه استفاده شده در رابط وب و Gmail API است.
در زیر نمونه ای از رونوشت فراخوانی برای بازیابی X-GM-THRID
چندین پیام (در دو رشته) با دستور FETCH
است:
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
چندین پیام با استفاده از دستور UID SEARCH
است:
a009 UID SEARCH X-GM-THRID 1266894439832287888
* SEARCH 2 3 4
a009 OK Search (Success)
دسترسی به برچسب های Gmail: X-GM-LABELS
Gmail برچسب ها را به عنوان پوشه برای اهداف IMAP در نظر می گیرد. به این ترتیب، برچسبها را میتوان با استفاده از دستورات استاندارد IMAP، CREATE
، RENAME
، و DELETE
که روی پوشهها عمل میکنند، تغییر داد. برچسبهای سیستم، که برچسبهایی هستند که توسط Gmail ایجاد میشوند، توسط "[Gmail]" یا "[GoogleMail]" در لیست برچسبها رزرو شده و پیشوند آنها است. از دستور XLIST
برای دریافت کل لیست برچسب های یک صندوق پستی استفاده کنید.
برچسبهای یک پیام داده شده ممکن است با استفاده از ویژگی X-GM-LABELS
با دستور FETCH
بازیابی شوند. ویژگی به عنوان لیستی از ASTRING
برگردانده می شود که در صورت لزوم در UTF-7 کدگذاری شده است. ASTRING
یک اتم یا یک رشته است که توسط RFC تعریف شده است.
در زیر نمونه ای از رونوشت یک تماس برای بازیابی 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
در ارتباط با ویژگی 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: پروتکل دسترسی به پیام اینترنت - نسخه 4rev1
- شناسه IMAP: RFC 2971: IMAP4 ID EXTENSION
- IMAP Special-Use: RFC 6154: برنامه افزودنی IMAP LIST برای صندوق پستی با استفاده ویژه