Guide
Outlook CLI:ターミナルでメール一覧表示(Graph API 不要)
Outlook CLI を使ってターミナルから Microsoft 365 メールの閲覧、検索、フィルタリング。直接 Graph API を使うには Azure AD アプリ登録、MSAL トークン、権限、リトライロジックが必要。Nylas CLI はこのセットアップを1つのコマンドに集約し、Gmail、Exchange、Yahoo、iCloud、IMAP で同じワークフローを使用。
Written by Nick Barraclough Product Manager
Reviewed by Qasim Muhammad
Outlook CLI でターミナルからメールを読むには?
Outlook または Microsoft 365 メールボックスを接続後、nylas email list、nylas email search、nylas email read を使用します。CLI により Azure AD アプリの登録や Microsoft Graph API コードの記述なしにターミナル Outlook ワークフローが得られます。
Outlook メールのコマンドラインワークフローとして、Outlook.com と Microsoft 365 アカウント間でメールの一覧表示、検索、閲覧を行う単一のコマンドセットを意味します。
Microsoft の FY2024 決算報告によると、Microsoft 365 には 4 億以上の有料シートがあります。世界で最も広く導入されているビジネスメールプラットフォームです。それにもかかわらず、コマンドラインから自分の受信箱を読むには驚くほど多くのセットアップが必要です。
Microsoft が 2022 年 10 月に Exchange Online の Basic Auth を廃止して以来、Graph API が唯一のサポートされたパスです。単一の GET /me/messages 呼び出しのためだけに、Azure AD でアプリを登録し、Mail.Read 権限を設定し、リフレッシュ処理付きの MSAL トークン取得を実装し、Microsoft の独自 JSON フォーマット(標準 MIME ではない)をパースする必要があります。Microsoft の Graph API スロットリングガイダンスによると、各メールボックスは 10 分あたり 10,000 リクエストに制限されているため、429 レスポンスのリトライロジックも必要です。
EWS(Exchange Web Services)はまだ存在しますが、Microsoft は Exchange Online 向け EWS の 2026 年 10 月廃止を発表しました(アナウンス MC862873)。az CLI にはメールコマンドがありません。PowerShell の Get-MailboxFolderPermission は Exchange Online 管理モジュールと管理者アクセスが必要です。これらはいずれもクリーンで移植可能なワークフローを提供しません。
1. インストールと認証
Nylas CLI のインストールと Outlook アカウントの接続は 2 分以内です。CLI は API キーで認証するため、Azure AD アプリの登録、MSAL の設定、トークンリフレッシュの自己管理は不要です。brew install コマンド1つと API キーの貼り付け1回で、ゼロからメール一覧表示まで到達できます。
Homebrew は macOS と Linux で最速のインストールパスです。formula は最新リリースバイナリを取得し、SHA-256 チェックサムを自動検証します。
# Homebrew でインストール(macOS / Linux)
brew install nylas/nylas-cli/nylas他のインストール方法(シェルスクリプト、PowerShell、Go)は 入門ガイドを参照してください。
インストール後、 dashboard-v3.nylas.com にアクセスし、アプリケーションを作成して Microsoft 365 または Outlook.com アカウントを接続します。ダッシュボードが OAuth2 同意とトークンストレージを処理します。その後、API キーで CLI を設定:
nylas auth config
# プロンプトで API キーを貼り付け
nylas auth whoami
# => Authenticated as you@company.com (Microsoft)2. メールの一覧表示、検索、閲覧
Nylas CLI は 3 つのメールサブコマンドを公開します——list、search、read——これらは 8 つの異なる Graph API エンドポイントと同じ機能をカバーします。各コマンドは典型的なメールボックスで 1 秒以内に結果を返します。list コマンドはデフォルトで最近のメッセージを表示し、search は Outlook のサーバーサイド検索インデックスにマッピングするキーワード、送信者、日付範囲フィルターを受け付けます。
以下の例は、Outlook メールの一覧表示、フィルタリング、閲覧の一般的なパターンです。--limit フラグで返される結果数を制御し、--unread で未読メッセージに出力を制限します。
# 最近のメール
nylas email list
nylas email list --limit 10
nylas email list --unread
# キーワード、送信者、日付範囲で検索
nylas email search "quarterly report" --limit 5
nylas email search "from:manager@company.com"
nylas email search "after:2026-01-01 before:2026-02-01"
# 特定のメッセージを読む(ID は list 出力に表示)
nylas email read msg_abc123
nylas email read msg_abc123 --mime3. スクリプティング用 JSON 出力
すべての Nylas CLI メールコマンドは --json フラグを受け付け、デフォルトのテーブル表示の代わりに正規化された JSON を出力します。この JSON フォーマットはサポートされている 6 つのプロバイダすべてで一貫しています——Gmail、Outlook、Exchange、Yahoo、iCloud、IMAP——そのため1つのプロバイダ用に書かれたスクリプトは他でもそのまま動作します。出力は jq、シェルスクリプト、AI エージェントのツール使用フローに直接パイプできます。
以下の例は 3 つの一般的なスクリプティングパターンを示します:未読メッセージのカウント、件名行の抽出、Microsoft Teams と SharePoint からの自動通知のフィルタリング。Microsoft 365 アカウントは通常 Teams だけで 1 日 15-30 通の自動通知メールを受信するため、プログラムによるフィルタリングは受信箱分析に有用です。
# 未読メールをカウント
nylas email list --unread --json | jq length
# 件名を抽出
nylas email list --limit 5 --json | jq '.[].subject'
# Teams/SharePoint 通知をフィルタリング
nylas email list --json \
| jq '[.[] | select(.from[0].email | test("teams|sharepoint"; "i"))]' \
| jq length4. 優先受信トレイ vs その他
Outlook の優先受信トレイは機械学習を使って重要なメッセージと低優先度のメッセージを分離し、Microsoft はアクティブユーザーのメールトリアージ時間を最大 50% 削減すると報告しています。Graph API はこの分類を inferenceClassification プロパティで公開しますが、アクセスには別の $filter パラメータが必要で、標準フォルダにはマッピングされません。Nylas CLI は Outlook のフォルダ構造を直接公開するため、優先、受信トレイ、送信済みアイテム、迷惑メールを含む任意のフォルダからメッセージを一覧表示できます。
nylas email folders list コマンドは、Outlook が自動作成するシステムフォルダを含むメールボックス内のすべてのフォルダを表示します。nylas email list の --folder フラグで結果を名前で単一フォルダにフィルタリングします。
# 全フォルダを一覧 — 優先受信トレイはフォルダ属性として表示
nylas email folders list
# 特定の Outlook フォルダのメールを一覧
nylas email list --folder "Inbox"
nylas email list --folder "Sent Items"
nylas email list --folder "Archive"
nylas email list --folder "Junk Email"
nylas email list --folder "Drafts"5. 共有メールボックスと委任アクセス
共有メールボックスは Microsoft 365 組織で一般的なパターンです——Microsoft の文書によると、平均的なエンタープライズテナントには support@ や billing@ などのチームエイリアス用に 5-10 個の共有メールボックスがあります。Graph API を通じた共有メールボックスへのアクセスには GET /users/{id}/messages と Mail.Read.Shared 権限およびテナント管理者の同意が必要です。Nylas CLI は各共有メールボックスを個別の grant として扱うことでこれを簡素化し、同じコマンドで個人メールボックスと共有メールボックスを切り替えられます。
Nylas ダッシュボードで共有メールボックスを個別の grant として接続します。nylas auth list で接続されたすべてのメールボックスを確認し、grant ID を任意のメールコマンドに渡します。委任アクセスも同様です。
# grant を一覧して接続済みメールボックスを確認
nylas auth list
# 共有メールボックスで作業(個別の grant として接続)
nylas email list <shared-mailbox-grant-id>6. Outlook カテゴリとフラグ
Outlook はメッセージごとに最大 25 の色分けカテゴリとフォローアップフラグをサポートしています——Gmail や Yahoo Mail にはない機能です。Microsoft の生産性研究によると、カテゴリはエンタープライズ Outlook デプロイメントで最も使用される組織機能の1つです。Graph API は各メッセージオブジェクトでカテゴリを文字列配列として返しますが、カテゴリでフィルタリングするには OData $filter 式の構築が必要です。Nylas CLI は検索構文を通じてカテゴリフィルタリングを公開しています。
検索コマンドはカテゴリ名を直接受け付けます。送信者やキーワードクエリとカテゴリフィルターを組み合わせたり、JSON 出力を jq にパイプしてカスタムのカテゴリベースレポートを作成することもできます。
# 特定カテゴリのメールを検索
nylas email search "category:Red"
# カテゴリと他のフィルターを組み合わせ
nylas email search "category:Blue from:cfo@company.com" --limit 10
# カテゴリ付きメールを JSON でレポート用にエクスポート
nylas email list --json | jq '[.[] | select(.categories[]? == "Project Alpha")]'7. Microsoft Graph API vs Nylas CLI
Microsoft Graph API は Outlook メールボックスからメールを一覧表示するのに最低 40 行のコードと 4 つの個別設定ステップが必要です。Nylas CLI はこれをアプリケーションコードゼロの単一コマンドに削減します。以下の表は、/me/messages エンドポイントの Microsoft Learn ドキュメントから取得した Graph API の詳細とともに各ステップを対比しています。
| ステップ | Microsoft Graph API | Nylas CLI |
|---|---|---|
| アプリ登録 | Azure AD アプリ登録(portal.azure.com) | 不要 |
| 権限 | Mail.Read スコープ + 組織アカウントの管理者同意 | Nylas ダッシュボードが処理 |
| 認証フロー | MSAL ライブラリ、トークン取得、リフレッシュ処理 | nylas auth config |
| コード | REST 呼び出しまたは MS Graph SDK——最低 40 行以上 | コード不要 |
| メール一覧 | Bearer トークン付き GET /me/messages | nylas email list |
| レスポンス形式 | Microsoft 独自 JSON(MIME ではない) | 全プロバイダで正規化された JSON |
| ページネーション | @odata.nextLink を手動で追跡 | --limit フラグ |
| 検索 | $search または $filter OData パラメータ | nylas email search "query" |
| レート制限 | メールボックスあたり 10,000 リクエスト/10 分——429 を自分で処理 | バックオフ付き自動処理 |
| 共有メールボックス | Mail.Read.Shared + 管理者同意 | 個別の grant、同じコマンド |
8. Microsoft 365 デプロイメント注意事項
Microsoft 365 テナントには、外部ツールのメールボックス接続方法に影響する組織レベルのポリシーがあります。これらのポリシーは 4 億以上のすべての有料シートに存在し、業界によって大きく異なります——医療機関や政府テナントはほとんどの商用デプロイメントよりも厳しい条件付きアクセスを適用します。以下の点は Microsoft 365 に固有であり、個人の Outlook.com アカウントには当てはまりません。
- 条件付きアクセスポリシー——組織がデバイスコンプライアンスや IP 制限を適用している場合、IT 管理者が Nylas 接続を許可リストに追加する必要がある場合があります
- GCC および GCC High テナント——米国政府クラウドテナントは別の Graph API エンドポイントを使用します。接続前に管理者に確認してください
- 保持ポリシー——Microsoft 365 のコンプライアンス保持ポリシーは CLI コマンドが成功してもメッセージの削除を防止する場合があります。メッセージは同期後に再表示されます
- Teams と SharePoint の通知——
nylas email search "from:noreply@email.teams.microsoft.com"でフィルタリング
次のステップ
- CLI から Outlook メールを送信——Outlook アカウントからメッセージの送信、スケジュール、フォーマット
- メール CLI ツール比較——Outlook CLI ワークフローとターミナルメールクライアント、SMTP ツールの比較
- AI エージェント CLI(メール&カレンダー)——Outlook メールとカレンダーコマンドを JSON ツールとして公開
- CLI から Outlook カレンダーを管理——イベント作成、空き状況確認、会議室予約
- AI エージェント向け Outlook MCP サーバー——Microsoft 365 コネクタ、Graph API ツール、ローカル CLI MCP の比較
- ターミナルからメール送信——メールの送信、スケジュール、追跡
- Gmail メールを一覧表示——Google 向けの同じワークフロー
- Yahoo Mail メールを一覧表示——Yahoo 向けの同じワークフロー
- iCloud Mail メールを一覧表示——Apple 向けの同じワークフロー
- IMAP メールを一覧表示——Fastmail、Zoho など対応
- Exchange メールを一覧表示——Exchange 向けの同じワークフロー
- MCP で AI エージェントにメールアクセスを付与——Claude、Cursor、VS Code を受信箱に接続
- ターミナルで共有メールボックスを管理——grant 切り替えで個人とチームの受信箱を切り替え
- 完全なコマンドリファレンス——すべてのフラグとサブコマンドのドキュメント
- Microsoft Graph:メッセージ一覧 — Outlook / Microsoft 365 メール一覧の標準エンドポイント
- Microsoft Graph:OData クエリパラメータ — CLI フラグの背後にある $filter、$search、$select のセマンティクス