فرمانها
یک فرمان چطور خوانده میشود، پرچمهای سراسری، هر فرمان دستنوشته و هر فضای نام منابع.
یک فرمان چطور خوانده میشود
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 |
| --json | فقط JSON روی 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 نشان میدهد.
همهٔ فضاهای نام
ستون «همچنین» نامهای دیگری را فهرست میکند که فضای نام به آنها پاسخ میدهد.
| فضای نام | همچنین | فعلها |
|---|---|---|
| me | get, ping, rotate | |
| keys | key | list, get, create, update, delete, rotate, revoke, list-requests, list-activity, list-workspace-requests, list-workspace-activity |
| addresses | address | list |
| languages | language | list |
| emails | email | send, send-batch, translate, list, get, list-events, get-tracking, cancel, reschedule |
| templates | template | list, 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 |
| tracking | list, get-stats, get, list-opens, list-clicks | |
| threads | thread | list, get, update, trash, snooze, unsnooze, list-attachments |
| drafts | draft | list, get, create, update, delete |
| labels | list, list-colors, get, create, update, delete | |
| contacts | contact | list, get, create, update, delete, set-audiences, list-people, save, delete-many, set-photo, remove-photo, block, unblock, list-threads, activity |
| audiences | audience | list, growth, get, create, update, delete, empty, list-contacts, add-contact, remove-contact, add-contacts, remove-contacts, import-contacts |
| broadcasts | broadcast | preview, send, list, get, stats, list-recipients, get-recipient, cancel |
| domains | domain | list, get, create, verify, update, delete, list-addresses, create-address, get-address, update-address, delete-address |
| rules | rule | list, get, create, update, delete, reorder, test, list-runs |
| webhooks | webhook | list, get, create, update, delete, rotate-secret, test, list-deliveries, get-delivery, replay-delivery, list-workspace-deliveries, list-activity, list-workspace-activity |
| imports | import | list, get, create, upload-state, upload-chunk, start, cancel, list-failures, delete-upload, import-files |
| provider-imports | provider-import, providerImports | inspect, create, list, get, cancel |
| calendar | list-events, get-event, get-event-ics | |
| settings | setting | get, update |
| roles | role | list, get, create, update, delete, list-permissions |
| members | member | list, get, add, update, remove, grant-address, revoke-address, list-invitations, revoke-invitation, resend-invitation |
| suppressions | suppression | list, get, add, remove |
| files | file | list, get, stats, download, list-links, create-link, revoke-link, upload, delete, delete-many |
| temp-mail | tempMail | list-domains, create, get, extend, delete, list-messages, get-message, delete-message, list-attachments |
نامهای مستعار
| نام مستعار | به جای |
|---|---|
| ls | list |
| show, view | get |
| new, add | create |
| edit | update |
| rm, del, remove | delete |
| openemail ls | openemail inbox |
| openemail show | openemail 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 --helpopenemail --help هر فرمان را بر اساس کاربردش فهرست میکند. یک گروه زیرفرمانهایش را با نمونه فهرست میکند و یک فرمان هر چه را میگیرد نشان میدهد. openemail docs open cli این صفحهها را باز میکند.