EngageLab Email CLI
EngageLab Email CLI は、エージェントと開発者がコマンドラインから受信メールと送信メールを操作するのを支援します。
以下の用途で使用できます:
- 利用可能なメールボックスの一覧表示
- メールスレッドの一覧表示と検査
- 受信メッセージの読み取り
- 新着受信メッセージのポーリング
- 受信メッセージへの返信
- 新規メールの送信
インストール
npm install -g @engagelabemail/cli
インストールされているバージョンを確認:
engagelab-email-cli -V
EngageLab Email に接続するコマンドを実行すると、CLI は新しい CLI バージョンが利用可能かどうかを確認します。更新が必要な場合は、処理を停止して更新コマンドを表示します:
npm install -g @engagelabemail/cli@latest
設定
保存された設定の管理
config コマンドグループを使用して、ローカル認証情報の保存、表示、またはクリアを行います。
サービスアドレスとシークレットキーをローカルに保存:
engagelab-email-cli config set --base-url http://localhost:8087 --secret-key sk_xxx
保存された設定を表示:
engagelab-email-cli config list
保存された設定をクリア:
engagelab-email-cli config clear
config list はシークレットキーをマスクします。
任意のビジネスコマンドでグローバル認証情報を使用
認証情報を先に保存する必要はありません。threads ... や emails ... などの任意のビジネスコマンドの前に、直接 --base-url と --secret-key を渡すことができます。これらのコマンドライン認証情報は現在のコマンドにのみ適用され、保存された設定を上書きすることはありません。
例:
engagelab-email-cli --base-url http://localhost:8087 --secret-key sk_xxx threads get thread-1
クイックスタート
最近の受信メッセージを一覧表示:
engagelab-email-cli emails receiving list --mailbox-id 12 --page-size 20
受信メッセージを 1 件読み取る:
engagelab-email-cli emails receiving get <message-uid>
メッセージ周辺の完全なスレッドを表示:
engagelab-email-cli threads messages <thread-id> --include-content --limit 10
受信メッセージに返信:
engagelab-email-cli emails receiving reply <message-uid> --subject "Re: Hello" --text "Thanks, we received your message."
新規メールを送信:
engagelab-email-cli emails send \
--mailbox-id 1001 \
--to alice@example.com \
--subject "Hello" \
--text "Hello from EngageLab Email CLI."
スクリプトやエージェント向けに、--json を追加して機械可読な出力を取得:
engagelab-email-cli emails receiving list --mailbox-id 12 --page-size 20 --json
コマンド
config set
ローカル設定を保存します。
| オプション | 説明 |
|---|---|
--base-url <url> |
サービスアドレス。設定されている場合は ENGAGELAB_EMAIL_BASE_URL がデフォルトになります。 |
--secret-key <key> |
シークレットキー。設定されている場合は ENGAGELAB_EMAIL_SECRET_KEY がデフォルトになります。 |
例:
engagelab-email-cli config set --base-url http://localhost:8087 --secret-key sk_xxx
config list
保存された設定を表示します。
例:
engagelab-email-cli config list
config clear
baseUrl と secretKey を含む、保存されたローカル設定をクリアします。
例:
engagelab-email-cli config clear
mailbox list
利用可能なメールボックスを一覧表示します。
| オプション | 説明 |
|---|---|
--mailbox <address> |
メールボックスアドレスでフィルタ。 |
--page-no <number> |
ページ番号。 |
--page-size <number> |
ページサイズ。 |
--json |
生の JSON を出力。 |
例:
engagelab-email-cli mailbox list --page-size 20
threads list
メールスレッドを一覧表示します。
| オプション | 説明 |
|---|---|
--mailbox-id <id> |
メールボックス ID でフィルタ。 |
--subject <text> |
正規化された件名で検索。 |
--participant <email> |
参加者で検索。 |
--start-time <timestamp> |
最新メッセージの開始タイムスタンプ(ミリ秒)。 |
--end-time <timestamp> |
最新メッセージの終了タイムスタンプ(ミリ秒)。 |
--page-no <number> |
ページ番号。 |
--page-size <number> |
ページサイズ。 |
--json |
生の JSON を出力。 |
例:
engagelab-email-cli threads list --subject refund --page-no 1 --page-size 20
threads get <thread-id>
単一のスレッドを表示します。
| 引数/オプション | 説明 |
|---|---|
<thread-id> |
スレッド ID。 |
--json |
生の JSON を出力。 |
例:
engagelab-email-cli threads get b0d9d6a1-1d17-4df8-8245-c807d7e8cb50
threads messages <thread-id>
スレッド内のメッセージを一覧表示します。
| 引数/オプション | 説明 |
|---|---|
<thread-id> |
スレッド ID。 |
--limit <number> |
メッセージの上限数。 |
--include-content |
text/html/headers/attachments を含める。 |
--json |
生の JSON を出力。 |
例:
engagelab-email-cli threads messages b0d9d6a1-1d17-4df8-8245-c807d7e8cb50 --include-content --json
emails receiving list
受信メッセージを一覧表示します。
| オプション | 説明 |
|---|---|
--mailbox-id <id> |
メールボックス ID でフィルタ。 |
--keyword <text> |
検索キーワード。 |
--page-no <number> |
ページ番号。 |
--page-size <number> |
ページサイズ。 |
--json |
生の JSON を出力。 |
例:
engagelab-email-cli emails receiving list --keyword refund --page-size 20
emails receiving get <message-uid>
単一の受信メッセージを表示します。
| 引数/オプション | 説明 |
|---|---|
<message-uid> |
メッセージ UID。 |
--json |
生の JSON を出力。 |
例:
engagelab-email-cli emails receiving get 7e2b2de6-14c5-4ef1-a1e2-f4337e4606e2 --json
emails receiving listen
新着受信メッセージをポーリングします。このコマンドは Ctrl+C で停止するまで実行を続けます。
| オプション | 説明 |
|---|---|
--after <id> |
前回の結果からのカーソル ID。 |
--limit <number> |
メッセージの上限数。 |
--interval <seconds> |
ポーリング間隔(秒)(最小 2)。 |
--json |
1 行に 1 つの JSON メッセージを出力。 |
例:
engagelab-email-cli emails receiving listen --limit 10 --interval 5 --json
既知のカーソルから続行:
engagelab-email-cli emails receiving listen --after 1500 --limit 10 --interval 5 --json
emails receiving reply <message-uid>
受信メッセージに返信します。
| 引数/オプション | 説明 |
|---|---|
<message-uid> |
返信先のメッセージ UID。 |
--subject <text> |
返信の件名。 |
--text <text> |
プレーンテキスト本文。 |
--html <html> |
HTML 本文。 |
--text-file <path> |
ファイルからプレーンテキスト本文を読み取り。 |
--html-file <path> |
ファイルから HTML 本文を読み取り。 |
--cc <email> |
CC アドレス。繰り返し使用可。 |
--bcc <email> |
BCC アドレス。繰り返し使用可。 |
--reply-to <email> |
Reply-To アドレス。繰り返し使用可。 |
--preview-text <text> |
メールプレビューテキスト。 |
--attachment <path> |
ローカルファイルを添付。繰り返し使用可。--disposition との併用が必要です。最大 10 ファイル、base64 エンコード後合計 10MB(約 7.5MB の生ファイル)まで。 |
--disposition <value> |
添付ファイルの種別:attachment または inline。--attachment 使用時は必須です。繰り返し指定するか、全添付ファイルに対して一度に指定できます。 |
--content-id <id> |
インライン画像添付用の Content-ID。画像添付で --disposition inline を使用する場合は必須です。 |
--sandbox |
サンドボックスモードで送信。 |
--json |
生の JSON を出力。 |
例:
engagelab-email-cli emails receiving reply 7e2b2de6-14c5-4ef1-a1e2-f4337e4606e2 \
--subject "Re: Refund update" \
--text "Thanks, we received your message." \
--attachment ./receipt.pdf \
--disposition attachment
emails send
新規メールを送信します。
| オプション | 説明 |
|---|---|
--mailbox-id <id> |
メールボックス ID。 |
--from <email> |
送信者メールアドレス。 |
--to <email> |
受信者メールアドレス。繰り返し使用可。 |
--subject <text> |
メール件名。 |
--text <text> |
プレーンテキスト本文。 |
--html <html> |
HTML 本文。 |
--text-file <path> |
ファイルからプレーンテキスト本文を読み取り。 |
--html-file <path> |
ファイルから HTML 本文を読み取り。 |
--cc <email> |
CC アドレス。繰り返し使用可。 |
--bcc <email> |
BCC アドレス。繰り返し使用可。 |
--reply-to <email> |
Reply-To アドレス。繰り返し使用可。 |
--preview-text <text> |
メールプレビューテキスト。 |
--attachment <path> |
ローカルファイルを添付。繰り返し使用可。--disposition との併用が必要です。最大 10 ファイル、base64 エンコード後合計 10MB(約 7.5MB の生ファイル)まで。 |
--disposition <value> |
添付ファイルの種別:attachment または inline。--attachment 使用時は必須です。繰り返し指定するか、全添付ファイルに対して一度に指定できます。 |
--content-id <id> |
インライン画像添付用の Content-ID。画像添付で --disposition inline を使用する場合は必須です。 |
--sandbox |
サンドボックスモードで送信。 |
--json |
生の JSON を出力。 |
例:
engagelab-email-cli emails send \
--mailbox-id 1001 \
--to alice@example.com \
--to bob@example.com \
--subject "Refund update" \
--text "Your refund has been processed." \
--attachment ./receipt.pdf \
--disposition attachment
インライン画像添付付きの HTML を送信:
engagelab-email-cli emails send --mailbox-id 1001 --to alice@example.com --subject "Inline image" --html "<p>Logo <img src=cid:image_1000></p>" --attachment ./logo.png --disposition inline --content-id image_1000
添付ファイルのメタデータは、互換性のある 2 つの方法で渡すことができます。推奨される形式は、メタデータを各ファイルパスにバインドするもので、複数の添付ファイルがある場合のあいまいさを回避できます:
engagelab-email-cli emails send --mailbox-id 1001 --to alice@example.com --subject "Mixed attachments" --html "<p>Logo <img src=cid:image_1000></p>" --attachment "./receipt.pdf;disposition=attachment" --attachment "./logo.png;disposition=inline;content_id=image_1000"
互換性のため、従来の分割オプション形式もサポートされています:
engagelab-email-cli emails send --mailbox-id 1001 --to alice@example.com --subject "Inline image" --html "<p>Logo <img src=cid:image_1000></p>" --attachment ./logo.png --disposition inline --content-id image_1000
同じコマンド内で、インライン添付メタデータ形式(path;disposition=...)と --disposition または --content-id を混在させないでください。
ファイルから HTML コンテンツを送信:
engagelab-email-cli emails send \
--mailbox-id 1001 \
--to alice@example.com \
--subject "Monthly report" \
--html-file ./report.html
出力
デフォルトでは、CLI は可読なテーブルまたはサマリーを出力し、リクエストの実行中に短い読み込みメッセージを表示します。
他のツールやスクリプトが結果を解析する必要がある場合は、--json を使用してください。
engagelab-email-cli emails receiving get <message-uid> --json
emails receiving listen --json は、1 行に 1 つのメッセージ JSON オブジェクトを出力します。
エラー
人間可読なエラーには、API がビジネスエラーコードを返した場合にそのコードが含まれます(例:[100101] unauthorized)。
--json エラーは次の形式を使用します:
{
"error": {
"code": "auth_error",
"errorCode": 100101,
"message": "unauthorized"
}
}
終了コード:
| 終了コード | 意味 |
|---|---|
1 |
パラメータエラーまたは設定の欠落 |
2 |
認証失敗 |
3 |
リソースが見つかりません |
4 |
競合または進行中の状態 |
5 |
サーバーエラーまたはネットワークエラー |










