پرش به مستندات
CLI

نامه

فرستادن با هر بدنه و پیوستی، خواندن و جست‌وجوی صندوق پستی، پاسخ، مرتب کردن رشته‌ها و استفاده از صندوق‌های یک‌بارمصرف.

فرستادن

ترمینال
openemail send --to [email protected] --subject "Lunch?" --text "Thursday at noon works for me."

بدنه از نخستین منبع موجود از این‌ها می‌آید:

  1. --text و --html، هر دو با هم اگر هر دو بخش را می‌خواهید.
  2. --body-file <path>. فایل .html یا .htm به‌صورت HTML و هر فایل دیگر به‌صورت متن فرستاده می‌شود، و - از stdin می‌خواند.
  3. هر چه از stdin برسد. ورودی‌ای که با یک برچسب HTML شروع شود به‌صورت HTML فرستاده می‌شود.
  4. ویرایشگر شما ($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 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 --yes
  • temp 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 آن را نساخته است.
  • فرستندهٔ نامه در صندوق یک‌بارمصرف هرگز تأیید نمی‌شود.

صندوق ورودی شما،
با شرایط خودتان.

زیرساخت ایمیل برای کسب‌وکارها، هوش مصنوعی، عامل‌ها و ایمیل شخصی. ساخته‌شده برای مقیاس، حریم خصوصی و کنترل. هر چه ایمیل باید از روز نخست می‌داشت.

OpenEmail

زیرساخت ایمیل برای کسب‌وکارها، هوش مصنوعی، عامل‌ها و ایمیل شخصی. ساخته‌شده برای مقیاس، حریم خصوصی و کنترل. هر چه ایمیل باید از روز نخست می‌داشت.

© 2026 OpenEmail. همه حقوق محفوظ است.