يوضّح هذا المستند إضافات IMAP التي يوفّرها Gmail وكيفية استخدام المطوّرين لها. يفترض هذا المستند الإلمام ببروتوكول IMAP.
نظرة عامة
يوفّر Gmail مجموعة من إضافات IMAP للسماح لمطوّري البرامج المستندة إلى بروتوكول IMAP بتقديم تجربة مشابهة لتجربة Gmail من خلال IMAP. قد يفضّل المطوّرون الذين يدمجون ميزات Gmail في تطبيقات الويب أو الأجهزة الجوّالة استخدام Gmail API المستند إلى RESTful.
يمكن استخدام الإضافات عند الوصول إلى Gmail من خلال بروتوكول IMAP العادي أو عند الاتصال عبر OAuth.
التحقّق من وجود إضافات
يعلن Gmail عن إمكانية استخدام الإضافات في رده على الأمر 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 مع إضافة LIST لبروتوكول IMAP لصناديق البريد الإلكتروني ذات الاستخدام الخاص، ما يوفّر سمات جديدة للمجلدات الخاصة. تتيح هذه السمات للعميل معرفة المجلدات الخاصة (مثل \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: INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1
- معرّف IMAP: RFC 2971: إضافة معرّف IMAP4
- IMAP Special-Use: RFC 6154: IMAP LIST Extension for Special-Use Mailboxes