मेल
किसी भी बॉडी और अटैचमेंट के साथ भेजें, मेलबॉक्स पढ़ें और खोजें, जवाब दें, थ्रेड व्यवस्थित करें, और डिस्पोज़ेबल इनबॉक्स इस्तेमाल करें।
भेजें
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> | बाद में भेजें: 2026-10-01T09:00:00Z जैसा ISO समय, या 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यह ईमेल ID और उसकी स्थिति प्रिंट करती है। sent, partial और failed का मतलब है भेजने की कोशिश रिक्वेस्ट के भीतर हुई, और queued और scheduled का मतलब है कि वह रोका गया है। failed वाला भेजना कोड 1 के साथ बाहर निकलता है, और --json पूरा ईमेल प्रिंट करता है।
हर भेजने में एक आइडेम्पोटेंसी कुंजी होती है, आपकी या CLI की बनाई हुई, इसलिए कनेक्शन टूटने के बाद दोबारा कोशिश संदेश को कभी दो बार नहीं भेजती। जब कोई पाइपलाइन वही चरण फिर से चला सकती हो, तो अपनी कुंजी दें।
Attachments
--attach अधिकतम 20 फ़ाइलें लेता है। जब तक उनका कुल आकार 5 MB या कम हो, वे संदेश के अंदर जाती हैं। ज़्यादा होने पर हर फ़ाइल पहले Files में अपलोड होती है और संदेश उसका हवाला देता है, इसलिए बड़ी फ़ाइल के लिए कोई अतिरिक्त चरण नहीं चाहिए। कंटेंट टाइप फ़ाइल एक्सटेंशन से आता है।
इनबॉक्स
openemail inboxopenemail inbox --unread --limit 50openemail inbox archive --sort oldestopenemail inbox --all --json | jq -r ".items[].id"थ्रेड का एक पेज दिखाता है, नवीनतम पहले, इस जानकारी के साथ कि हर एक आख़िरी बार कब हिला, आख़िरी बार किसने लिखा, विषय, लेबल और थ्रेड ID। बिंदु अनपढ़े मेल को चिह्नित करता है। फ़ोल्डर इनबॉक्स है जब तक आप कोई और न बताएँ: sent, archive, starred, snoozed, spam, trash, draft, या USER_RECEIPTS जैसा लेबल ID।
-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थ्रेड का हर संदेश प्रिंट करता है, सबसे पुराना पहले: किसने किसे भेजा, कब, विषय, आकार और ID के साथ अटैचमेंट, और बॉडी। सादा टेक्स्ट भाग जैसा है वैसा दिखता है, और सिर्फ़ 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 ID दिखाता है |
हर एक कई थ्रेड ID लेता है और हर एक की रिपोर्ट देता है। पहली विफलता एग्ज़िट कोड तय करती है, और --json { results, succeeded, failed } प्रिंट करता है। खोज से मिले ID सीधे जोड़े जा सकते हैं:
openemail inbox --query "newer_than:30d from:alerts" --json | jq -r ".items[].id" | xargs openemail archiveडिस्पोज़ेबल इनबॉक्स
openemail temp कम समय वाले ऐसे पते बनाता है जिन्हें न अकाउंट चाहिए न साइन-इन, जो साइन-अप टेस्ट और एक बार के कोड के लिए ठीक हैं। हर इनबॉक्स टोकन ~/.openemail/temp-mail.json में रखा जाता है, इसलिए बाद की कमांड इनबॉक्स को उसके ID या पते से ढूँढ लेती हैं, या अपने आप जब आपके पास एक ही हो।
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 newstdout पर सिर्फ़ पता प्रिंट करता है। यह 60 मिनट जीवित रहता है जब तक--ttlकुछ और न कहे, अधिकतम 24 घंटे, और--nameऔर--domainपता चुनते हैं।temp watchजो आ चुका है उसे प्रिंट करता है, फिर हर 3 सेकंड में जाँचता है जब तक आप रोकें नहीं या इनबॉक्स की अवधि ख़त्म न हो।--firstपहले संदेश पर रुकता है, और--jsonहर संदेश के लिए एक JSON लाइन प्रिंट करता है।temp readसंदेशों को छोटे प्रीव्यू के साथ दिखाता है, या एक पूरा संदेश प्रिंट करता है।temp deleteइनबॉक्स और उसका मेल तुरंत हटा देता है। पता उसकी लीज़ ख़त्म होने के समय के बाद 7 दिन तक आरक्षित रहता है।--inbox-tokenऐसे इनबॉक्स तक पहुँचता है जिसे इस CLI ने नहीं बनाया,temp read,watchऔरdeleteमें।- डिस्पोज़ेबल इनबॉक्स में आए मेल का भेजने वाला कभी सत्यापित नहीं होता।