تخطَّ إلى المستندات
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 ما لم تحدد). وحين يتبقى المزيد، يُطبع المؤشر التالي على stderr لاستخدامه مع --cursor، ويقرأ --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 إلى صندوق وارد لم تنشئه هذه الـ CLI، في temp read وwatch وdelete.
  • مرسل البريد في صندوق الوارد المؤقت لا يُتحقق منه أبدًا.

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

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

OpenEmail

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

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