تخطَّ إلى المستندات
CLI

الأوامر

كيف يُقرأ الأمر، والخيارات العامة، وكل أمر مكتوب يدويًا، وكل مساحة أسماء للموارد.

كيف يُقرأ الأمر

القواعد
openemail <command> [subcommand] [arguments] [flags]
  • الخيارات تأتي في أي مكان بعد الأمر، قبل الوسائط أو بعدها. ويمكن للخيارات العامة مثل --profile و--json أن تأتي قبله أيضًا، وأي خيار آخر يوضع هناك يتوقف مع تلميح بنقله إلى ما بعد اسم الأمر.
  • تتبع القيمة خيارها بعد مسافة أو علامة يساوي، فـ --limit 50 و--limit=50 سواء. والخيارات القصيرة تأخذ قيمًا أيضًا، كما في -n 50.
  • القيمة التي تبدأ بشرطة تحتاج إلى علامة المساواة، كما في --subject=-draft-، لأنها بعد المسافة تُقرأ على أنها الخيار التالي ويُبلَّغ أن الخيار الأول بلا قيمة. والأعداد السالبة تعمل بالطريقتين. والقيمة الفارغة خطأ استخدام لا قيمة افتراضية صامتة.
  • المفتاح يُشغَّل بـ --flag ويُطفأ بـ --no-flag، و--flag=true و--flag=false يعملان أيضًا.
  • القائمة مفصولة بفواصل أو مكررة: --to [email protected],[email protected]، أو --to مرتين.
  • كل ما بعد -- وسيط وليس خيارًا أبدًا، وهكذا يمر البحث عن -from:ada.
  • الأمر أو الخيار المجهول يتوقف برمز الخروج 2 ويقترح أقرب تطابق.

الخيارات العامة

الخيارما تفعله
-h, --helpالمساعدة للأمر أو المجموعة
-v, --versionطباعة إصدار CLI
--jsonJSON فقط على stdout، والأخطاء بصيغة JSON على stderr، ولا مطالبات أبدًا
-y, --yesتأكيد الإجراءات المدمّرة دون سؤال. لا يتخطى رمز التحقق أبدًا
--profile <name>استخدام هذا الملف الشخصي المحفوظ، مثل OPENEMAIL_PROFILE
--api-key <key>استخدام مفتاح API هذا لهذا الأمر وحده، مع تجاهل الملفات الشخصية
--base-url <url>أصل API لمفتاح API أو لأمر لا يرسل بيانات اعتماد، مثل OPENEMAIL_BASE_URL. وتسجيل الدخول المحفوظ يستخدم أصله دائمًا
--no-inputعدم السؤال أبدًا. القيمة الناقصة تتوقف برمز الخروج 2
--no-colorبلا ألوان، مثل NO_COLOR وFORCE_COLOR=0
--debugطباعة معرّفات الطلبات، والطلب الفاشل، وتتبعات المكدس

الأوامر المكتوبة يدويًا

هذه مكتوبة للبشر: تسأل عمّا ينقص، وتنسّق ما تطبعه، وتجمع عدة استدعاءات API حين يفيد ذلك.

الأمرما تفعله
loginتسجيل الدخول بمتصفحك، أو حفظ مفتاح API
whoamiالحساب الذي سجّلت به الدخول، مع مساحة العمل والنطاقات والانتهاء
statusما يعرضه whoami، إضافة إلى عناوين الإرسال لديك وحالة كل نطاق
verifyإدخال رمز تحقق الآن، كي تعمل الأوامر الحساسة مدة 60 دقيقة
logoutتسجيل الخروج ونسيان ملف شخصي
profile list, use, current, removeعرض عمليات تسجيل الدخول المحفوظة والتبديل بينها وإزالتها
sendإرسال بريد، أو جدولته، أو ترجمته وإرساله
inbox [folder]عرض المحادثات في مجلد
search <query>البحث في البريد بالصياغة التي يستخدمها التطبيق
read <thread-id>قراءة محادثة، رسالة بعد رسالة
reply <thread-id>الرد على آخر رسالة في محادثة
archive, unarchive, trash, star, unstarترتيب محادثة أو أكثر
mark read, mark unreadتعليم المحادثات كمقروءة أو غير مقروءة
snooze, unsnoozeإخفاء المحادثات حتى وقت لاحق، أو إعادتها الآن
label add, label removeوضع تسميات على المحادثات أو إزالتها
temp new, list, read, watch, deleteصناديق وارد مؤقتة، دون تسجيل دخول
ai translate, languages, compose, summarizeترجمة البريد وكتابته وتلخيصه بالذكاء الاصطناعي
mcp config, tools, call, serveربط عملاء الذكاء الاصطناعي، أو استدعاء أدوات MCP بنفسك
docs ask, open, readسؤال هذا التوثيق وفتحه وقراءته
open [page]فتح صفحة من تطبيق الويب
api <method> <path>استدعاء أي نقطة نهاية REST بتسجيل دخولك
updateالبحث في npm عن إصدار أحدث
completion <shell>طباعة سكربت إكمال تلقائي لـ bash أو zsh أو fish
versionطباعة إصدارات CLI وSDK وبيئة التشغيل
help [command]عرض المساعدة لأي أمر

أوامر الموارد

كل طريقة في SDK هي أمر أيضًا: openemail <namespace> <verb>. مساحة الأسماء هي مساحة أسماء SDK بصيغة kebab-case، والفعل هو اسم الطريقة بصيغة kebab-case، فيصبح keys.listRequests هو openemail keys list-requests. وهي معًا تغطي REST API كلها.

الطرفية
openemail domains listopenemail domains create --domain acme.comopenemail rules create --data @rule.jsonopenemail keys list-requests 9f2c1a4b7e05d3862c1f0a44 --failed-only --allopenemail files download file_6bb640f5b99e47deb758f1f5 --out report.pdf
  • المعرّف الذي تأخذه الطريقة وسيط، كما في openemail domains get <id>. وكل حقل في جسم الطلب خيار يحمل اسمه بصيغة kebab-case: replyTo يصبح --reply-to، وcolor.backgroundColor يصبح --color-background-color.
  • ثلاثة حقول كان خيارها سيتعارض مع خيار عام أُعيدت تسميتها: --template-version و--label-color و--resend-key.
  • يأخذ --data الجسم كله بصيغة JSON، مضمّنًا، أو من ملف عبر @path، أو من stdin عبر -، وأي خيار تمرره إلى جانبه يتجاوز مفتاحه. والخيار الذي يأخذ كائنًا يقرأ JSON بالطريقة نفسها.
  • تُقرأ الأرقام والمفاتيح على حالها، والقوائم مفصولة بفواصل أو مكررة.
  • القيمة المطلوبة الناقصة تُطلب في الطرفية، وهي خطأ استخدام (رمز الخروج 2) في أي مكان آخر.
  • فعل القائمة يقرأ صفحة واحدة. يحدد --limit حجمها، ويواصل --cursor من المؤشر الذي طبعه. ويقرأ --all كل صفحة ويبث العناصر، ويتوقف --max <n> بعد هذا العدد، ويطبع --ndjson كائن JSON واحدًا في كل سطر.
  • أي شيء مدمّر، كالحذف أو الإبطال أو التدوير أو الإلغاء أو التفريغ، يطلب منك التأكيد، ما لم تمرّر --yes.
  • يُكتب التنزيل في الملف المحدد في --out، ولا يُكتب على stdout إلا حين لا يكون stdout طرفية.

يعرض openemail <namespace> <verb> --help كل وسيط وخيار بنوعه، والنطاقات التي يحتاجها الاستدعاء، وطريقته ومساره، وما يعيده، والملاحظات من مرجع API.

كل مساحة أسماء

عمود «أيضًا» يسرد الأسماء الأخرى التي تستجيب لها مساحة الأسماء.

مساحة الأسماءأيضًاالأفعال
meget, ping, rotate
keyskeylist, get, create, update, delete, rotate, revoke, list-requests, list-activity, list-workspace-requests, list-workspace-activity
addressesaddresslist
languageslanguagelist
emailsemailsend, send-batch, translate, list, get, list-events, get-tracking, cancel, reschedule
templatestemplatelist, get, create, update, duplicate, replace-content, delete, list-versions, get-version, publish, restore-version, delete-version, list-starters, get-starter, list-fonts, render, preview, get-analytics, list-sends, send
trackinglist, get-stats, get, list-opens, list-clicks
threadsthreadlist, get, update, trash, snooze, unsnooze, list-attachments
draftsdraftlist, get, create, update, delete
labelslist, list-colors, get, create, update, delete
contactscontactlist, get, create, update, delete, set-audiences, list-people, save, delete-many, set-photo, remove-photo, block, unblock, list-threads, activity
audiencesaudiencelist, growth, get, create, update, delete, empty, list-contacts, add-contact, remove-contact, add-contacts, remove-contacts, import-contacts
broadcastsbroadcastpreview, send, list, get, stats, list-recipients, get-recipient, cancel
domainsdomainlist, get, create, verify, update, delete, list-addresses, create-address, get-address, update-address, delete-address
rulesrulelist, get, create, update, delete, reorder, test, list-runs
webhookswebhooklist, get, create, update, delete, rotate-secret, test, list-deliveries, get-delivery, replay-delivery, list-workspace-deliveries, list-activity, list-workspace-activity
importsimportlist, get, create, upload-state, upload-chunk, start, cancel, list-failures, delete-upload, import-files
provider-importsprovider-import, providerImportsinspect, create, list, get, cancel
calendarlist-events, get-event, get-event-ics
settingssettingget, update
rolesrolelist, get, create, update, delete, list-permissions
membersmemberlist, get, add, update, remove, grant-address, revoke-address, list-invitations, revoke-invitation, resend-invitation
suppressionssuppressionlist, get, add, remove
filesfilelist, get, stats, download, list-links, create-link, revoke-link, upload, delete, delete-many
temp-mailtempMaillist-domains, create, get, extend, delete, list-messages, get-message, delete-message, list-attachments

الأسماء البديلة

الاسم البديلبدلًا من
lslist
show, viewget
new, addcreate
editupdate
rm, del, removedelete
openemail lsopenemail inbox
openemail showopenemail read

في members وsuppressions، حيث الفعلان add وremove، يقود new وcreate إلى add، ويقود rm وdel وdelete إلى remove. ولبعض الأوامر الفرعية المكتوبة يدويًا أسماء بديلة خاصة بها، تذكرها مساعدتها.

أي استدعاء REST

يرسل openemail api <method> <path> طلبًا واحدًا إلى REST API عبر النقل نفسه الذي يستخدمه كل أمر آخر، فتسري عليه ملفك الشخصي أو مفتاحك، وتجديد الرمز، ورموز التحقق. والمسار وحده يعني GET. ويُطبع رد JSON منسّقًا، والطلب الفاشل يطبع خطأ الـ API ويخرج بالرمز المقابل.

الطرفية
openemail api /keys/selfopenemail api GET /threads --query folder=inbox --query limit=5openemail api POST /labels --data '{"name":"Receipts"}'openemail api PATCH /threads/CAHk7pQ2x9LmZ4 --data @patch.jsonopenemail api GET /files/file_6bb640f5b99e47deb758f1f5/content --out report.pdf
  • يأخذ -d و--data الجسم بصيغة JSON مضمّنة، أو من ملف بـ @path، أو من stdin بـ -. ويأخذ -q و--query و-H و--header القيمة key=value ويمكن تكرارها، ويحفظ -o و--out الرد في ملف كما وصل.
  • المسار نسبي إلى أصل الـ API. والعنوان الكامل، والمسار الذي سيخرج من الأصل، وترويسة Authorization تُرفض برمز الخروج 2 قبل إرسال أي شيء، لأن CLI تضبط بيانات الاعتماد بنفسها.

المساعدة

الطرفية
openemail --helpopenemail help sendopenemail domains --helpopenemail domains create --help

يسرد openemail --help كل أمر بحسب الغرض منه. وتسرد المجموعة أوامرها الفرعية مع أمثلة، ويعرض الأمر كل ما يأخذه. ويفتح openemail docs open cli هذه الصفحات.

صندوق بريدك،
بشروطك أنت.

بنية بريد إلكتروني للشركات والذكاء الاصطناعي والوكلاء والبريد الشخصي. مبنية للتوسّع والخصوصية والتحكّم. كل ما كان ينبغي للبريد الإلكتروني أن يملكه منذ اليوم الأول.

OpenEmail

بنية بريد إلكتروني للشركات والذكاء الاصطناعي والوكلاء والبريد الشخصي. مبنية للتوسّع والخصوصية والتحكّم. كل ما كان ينبغي للبريد الإلكتروني أن يملكه منذ اليوم الأول.

© 2026 OpenEmail. جميع الحقوق محفوظة.