نامه
فرستادن با هر بدنه و پیوستی، خواندن و جستوجوی صندوق پستی، پاسخ، مرتب کردن رشتهها و استفاده از صندوقهای یکبارمصرف.
فرستادن
openemail send --to [email protected] --subject "Lunch?" --text "Thursday at noon works for me."بدنه از نخستین منبع موجود از اینها میآید:
--textو--html، هر دو با هم اگر هر دو بخش را میخواهید.--body-file <path>. فایل.htmlیا.htmبهصورت HTML و هر فایل دیگر بهصورت متن فرستاده میشود، و-از stdin میخواند.- هر چه از stdin برسد. ورودیای که با یک برچسب HTML شروع شود بهصورت HTML فرستاده میشود.
- ویرایشگر شما (
$VISUAL، سپس$EDITOR)، وقتی آن را در ترمینال اجرا میکنید.
بدون --from، CLI از تنها نشانیای که میتوانید از آن بفرستید میفرستد، یا در ترمینال اجازه میدهد یکی را انتخاب کنید. بدون نظارت و با بیش از یک نشانی، میایستد و --from را میخواهد. در ترمینال خلاصهای میبینید و پیش از فرستادن تأیید میکنید، کاری که --yes از آن میگذرد.
| پرچم | چه میکند |
|---|---|
| --to, --cc, --bcc | گیرندگان، جدا با ویرگول یا تکرارشده. Ada Lovelace <[email protected]> هم کار میکند |
| --from, --reply-to | نشانی فرستنده، و سرایند Reply-To |
| -s, --subject | خط موضوع |
| -a, --attach <path> | پیوست کردن یک فایل. برای بیشتر تکرار کنید |
| --at <when> | فرستادن در زمانی دیگر: زمانی به قالب ISO مثل 2026-10-01T09:00:00Z، یا تأخیری مثل 10m، 2h، 1d یا PT1H |
| --undo <seconds> | نگه داشتن یک ارسال فوری تا 900 ثانیه، تا هنوز بتوان لغوش کرد |
| --translate <language> | ترجمهٔ ایمیل به این زبان پیش از رفتن |
| --template <id>, --props <json> | فرستادن یک قالب ذخیرهشده با props آن به جای بدنه |
| --draft <id> | فرستادن یک پیشنویس ذخیرهشده دقیقاً همانطور که نوشته شده |
| --thread <id> | گذاشتن ایمیل فرستادهشده در این رشته |
| --tag <key=value> | برچسبگذاری ایمیل. برای بیشتر تکرار کنید |
| --idempotency-key <key> | اجرای دوبارهٔ فرمان با همان کلید هرگز دو بار نمیفرستد |
cat report.md | openemail send --to [email protected] --subject "Weekly report" --attach chart.pngopenemail send --to [email protected] --subject "Invoice" --body-file invoice.html --translate de --at 2hopenemail send --to [email protected] --template welcome --props '{"name":"Ada"}' --tag campaign=onboardingشناسهٔ ایمیل و وضعیت آن را چاپ میکند. sent، partial و failed یعنی ارسال در همان درخواست امتحان شده، و queued و scheduled یعنی نگه داشته شده است. ارسال failed با کد 1 خارج میشود و --json کل ایمیل را چاپ میکند.
هر ارسال یک کلید ناتکراری دارد، کلید شما یا کلیدی که CLI میسازد، پس تلاش دوباره پس از قطع اتصال هرگز پیام را دو بار نمیفرستد. وقتی یک خط لوله ممکن است همان گام را دوباره اجرا کند، کلید خودتان را بدهید.
پیوستها
--attach تا 20 فایل میگیرد. تا وقتی مجموعشان 5 مگابایت یا کمتر باشد، درون پیام میروند. وقتی بیشتر باشد، هر کدام نخست در فایلها بارگذاری میشود و پیام به آن ارجاع میدهد، پس فایل بزرگ هیچ گام اضافهای لازم ندارد. نوع محتوا از پسوند فایل گرفته میشود.
صندوق ورودی
openemail inboxopenemail inbox --unread --limit 50openemail inbox archive --sort oldestopenemail inbox --all --json | jq -r ".items[].id"یک صفحه از رشتهها را، تازهترین در ابتدا، فهرست میکند با اینکه هر کدام آخرین بار کی جابهجا شده، چه کسی آخرین بار نوشته، موضوع، برچسبها و شناسهٔ رشته. یک نقطه نامهٔ نخوانده را نشان میدهد. پوشه صندوق ورودی است مگر پوشهٔ دیگری نام ببرید: sent، archive، starred، snoozed، spam، trash، draft یا شناسهٔ برچسبی مثل USER_RECEIPTS.
-u،--unreadرشتههایی را که نامهٔ نخوانده دارند نگه میدارد،-l،--labelرشتههایی را که برچسبی دارند، و-q،--queryفهرست را با یک جستوجو محدود میکند.-n،--limitاندازهٔ صفحه را از 1 تا 100 تعیین میکند (اگر چیزی نگویید 25). وقتی باز هم مانده باشد، نشانگر بعدی برای--cursorروی stderr چاپ میشود و--allهمهٔ صفحهها را میخواند.--from-contactsرشتههایی را نگه میدارد که تازهترین پیامشان از یک مخاطب ذخیرهشده آمده، و--sortآنها را بر اساسnewest،oldest،senderیاsubjectمرتب میکند.--jsonخروجی{ items, hasMore, nextCursor }را چاپ میکند، با هر رشته بهطور کامل.
جستوجو
openemail search invoice from:adaopenemail search "quarterly report" has:pdf newer_than:30dopenemail search in:anywhere from:me to:ada --limit 50openemail search -- invoice -from:adaجستوجو نحو کادر جستوجوی برنامه را میپذیرد: واژههای ساده، عبارتهای درون گیومه و عملگرهایی مثل from:، to:، subject:، has:pdf، is:unread، after:2026/01/31 و newer_than:7d. در صندوق ورودی یا در پوشهٔ --folder جستوجو میکند، مگر پرسوجو با in: یا is: پوشهای نام ببرد، و in:anywhere در همهٔ پوشهها جستوجو میکند. پرچمهای inbox را میپذیرد و نتایج را به همان شکل نشان میدهد.
واژهای که با خط تیره شروع شود از نتایج کنار گذاشته میشود و CLI آن را پرچم میخواند، پس پیش از پرسوجویی که چنین واژهای دارد -- بگذارید.
خواندن یک رشته
openemail read CAHk7pQ2x9LmZ4openemail read CAHk7pQ2x9LmZ4 --message -1openemail read CAHk7pQ2x9LmZ4 --html --message 1 > first.htmlهر پیام رشته را، قدیمیترین در ابتدا، چاپ میکند: چه کسی فرستاده و به چه کسی، کی، موضوع، پیوستها با اندازه و شناسه، و بدنه. بخش متن ساده همانطور که هست نشان داده میشود و پیامی که فقط HTML دارد به متن خوانایی تبدیل میشود که فهرستها، نقلقولها، سرعنوانها و پیوندهایش را نگه میدارد. خواندن رشته را خوانده علامت میزند، مگر اینکه --no-mark-read بدهید.
-m،--message <n>یک پیام را نشان میدهد، با شمارش از 1، یا با عدد منفی از تازهترین.--htmlبه جای آن HTML خام را چاپ میکند.- پیام رمزگذاریشده اینجا رمزگشایی نمیشود، پس آن را در برنامهٔ وب باز کنید.
پاسخ
openemail reply CAHk7pQ2x9LmZ4 --text "Thanks, that works for me."openemail reply CAHk7pQ2x9LmZ4 --all --attach notes.pdfecho "Confirmed." | openemail reply CAHk7pQ2x9LmZ4 --yesدر همان رشته به کسی که آخرین پیام را فرستاده، یا به نشانی Reply-To آن، پاسخ میدهد. وقتی آخرین پیام از خود شماست، پاسخ به کسانی میرود که آن پیام برایشان رفته بود. --all همهٔ دیگرانِ آن پیام را، جز نشانیهای خودتان، در رونوشت میگذارد. اگر موضوع Re: نداشته باشد اضافه میشود، و پاسخ از نشانیای میرود که رشته به آن تحویل شده بود، اگر بتوانید از آن بفرستید.
پرچمهای بدنه، پیوست، زمانبندی، ترجمه، برچسب و یکتایی درخواستِ send را همراه با --from و --subject میپذیرد، و --to، --cc و --bcc گیرندگان را بازنویسی میکنند.
مرتب کردن رشتهها
| فرمان | چه میکند |
|---|---|
| archive <thread-id...> | بیرون از صندوق ورودی، همچنان قابل جستوجو |
| unarchive <thread-id...> | بازگشت به صندوق ورودی |
| trash <thread-id...> | به سطل زباله. تأیید میخواهد، چون هیچ فراخوانی رشته را از آنجا بیرون نمیآورد |
| star, unstar | افزودن یا برداشتن ستاره |
| mark read, mark unread | علامت زدن رشتهها بهعنوان خوانده یا نخوانده |
| snooze <thread-id...> --until <when> | پنهان کردن رشتهها تا یک زمان، یا برای مدتی مثل 3h یا 1w. حدود یک ساعت پس از آن برمیگردند |
| unsnooze | برگرداندن همین حالای رشتههای بهتعویقافتاده |
| label add, remove --label <id> | گذاشتن برچسب روی رشتهها یا برداشتن آنها. openemail labels list شناسهها را نشان میدهد |
هر کدام چند شناسهٔ رشته میگیرد و دربارهٔ هر یک گزارش میدهد. نخستین شکست کد خروج را تعیین میکند و --json خروجی { results, succeeded, failed } را چاپ میکند. شناسههای یک جستوجو مستقیم به آن زنجیر میشوند:
openemail inbox --query "newer_than:30d from:alerts" --json | jq -r ".items[].id" | xargs openemail archiveصندوقهای یکبارمصرف
openemail temp نشانیهای کوتاهعمری میسازد که به حساب یا ورود نیاز ندارند و برای آزمونهای ثبتنام و کدهای یکبارمصرف مناسباند. توکن هر صندوق در ~/.openemail/temp-mail.json نگه داشته میشود، پس فرمانهای بعدی صندوق را با شناسه یا نشانیاش پیدا میکنند، یا خودشان وقتی فقط یکی دارید.
ADDRESS=$(openemail temp new --ttl 15)openemail temp watch --first --json | jq -r .snippetopenemail temp listopenemail temp readopenemail temp read tinb_4f2a tmail_91c3openemail temp delete --yestemp newفقط نشانی را روی stdout چاپ میکند. نشانی 60 دقیقه زنده است مگر--ttlچیز دیگری بگوید، تا 24 ساعت، و--nameو--domainنشانی را انتخاب میکنند.temp watchآنچه رسیده را چاپ میکند، سپس هر 3 ثانیه بررسی میکند تا وقتی متوقفش کنید یا صندوق منقضی شود.--firstبا نخستین پیام میایستد و--jsonبرای هر پیام یک سطر JSON چاپ میکند.temp readپیامها را با پیشنمایشی کوتاه فهرست میکند، یا یک پیام کامل را چاپ میکند.temp deleteصندوق و نامههایش را بیدرنگ حذف میکند. نشانی تا 7 روز پس از پایان مدت اجارهاش رزرو میماند.--inbox-tokenدرtemp read،watchوdeleteبه صندوقی دسترسی میدهد که این CLI آن را نساخته است.- فرستندهٔ نامه در صندوق یکبارمصرف هرگز تأیید نمیشود.