メール
任意の本文と添付ファイルで送信し、メールボックスを読み、検索し、返信し、スレッドを整理し、使い捨て受信トレイを使います。
送信
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 が生成した冪等キーが付くので、接続が切れた後に再試行してもメッセージが二重に送られることはありません。パイプラインが同じステップを再実行する可能性があるときは、独自のキーを渡してください。
添付ファイル
--attach は最大 20 ファイルを受け付けます。合計が 5 MB 以下のうちはメッセージの中に含めて送ります。それを超える場合は、各ファイルをまずファイルにアップロードし、メッセージから参照するので、大きなファイルでも追加の手順は不要です。コンテンツタイプはファイルの拡張子から決まります。
受信トレイ
openemail inboxopenemail inbox --unread --limit 50openemail inbox archive --sort oldestopenemail inbox --all --json | jq -r ".items[].id"スレッドを新しい順に 1 ページ表示し、最後に動いた日時、最後に書いた人、件名、ラベル、スレッド 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 などの演算子です。クエリが in: や is: でフォルダーを指定しない限り、受信トレイまたは --folder のフォルダーを検索し、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 通だけを表示します。1 から数えるか、負の数なら最新から数えます。--htmlは代わりに生の HTML を出力します。- 暗号化されたメッセージはここでは復号されないので、Web アプリで開いてください。
返信
openemail reply CAHk7pQ2x9LmZ4 --text "Thanks, that works for me."openemail reply CAHk7pQ2x9LmZ4 --all --attach notes.pdfecho "Confirmed." | openemail reply CAHk7pQ2x9LmZ4 --yes同じスレッドで、最後のメッセージの送信者、またはその Reply-To アドレスに返信します。最後のメッセージが自分のものなら、そのメッセージの宛先に返信します。--all は、自分のアドレスを除いて、そのメッセージの他の全員を CC に入れます。件名にまだ 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 のような期間、スレッドを非表示にします。その時刻からおよそ 1 時間以内に戻ります |
| 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 かアドレスで受信トレイを見つけます。1 つしかない場合は自動で選ばれます。
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 にアドレスだけを出力します。--ttlで指定しない限り 60 分間、最大 24 時間有効で、--nameと--domainでアドレスを選べます。temp watchは届いているものを表示し、その後は停止するか受信トレイの期限が切れるまで 3 秒ごとに確認します。--firstは最初のメッセージで停止し、--jsonはメッセージごとに 1 行の JSON を出力します。temp readはメッセージを短いプレビューつきで一覧表示するか、1 通を全文表示します。temp deleteは受信トレイとそのメールをすぐに削除します。アドレスは、本来の利用期限から 7 日間予約されたままになります。--inbox-tokenを使うと、この CLI が作成していない受信トレイにtemp read、watch、deleteでアクセスできます。- 使い捨て受信トレイのメールの送信者は、決して検証されません。