mcpField
M
m365-mail

m365-mail

github.com/probichaux生産性0109 回インストール40 週間前に更新
リポジトリ

m365-mail について

m365-mailは、Microsoft Graphを通じてMicrosoft 365のメールを扱うコマンドラインツールです。端末やスクリプトでメールを読む、検索する、送信する、整理するといった操作ができ、テキストとJSONで出力します。

主な機能

  1. 01条件を指定した受信トレイ一覧
  2. 02メールの閲覧と検索
  3. 03テキストまたはHTMLメールの送信
  4. 04メールの移動、削除、状態変更
  5. 05テキストとJSONでの出力

活用シーン

  1. 01未読メールの確認
  2. 02送信者や添付ファイルでの検索
  3. 031人または複数の宛先への送信
  4. 04メールのアーカイブや状態更新

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/probichaux/clawdskills --skill m365-mail

インストール後、Claude Code で/m365-mailを入力して読み込まれたか確認します。

同梱ファイルscripts/m365mailscripts/m365mail.py

詳細

Microsoft 365 Mail

Microsoft Graph API を介して Microsoft 365 のメールを操作する CLI ツールです。

セットアップ(一度のみ)

1. Entra ID アプリを登録する
  1. Entra ID Portal → アプリの登録 → 新規登録に移動します
  2. 名前:m365mail-cli(または任意の名前)
  3. サポートされているアカウントの種類:「この組織のディレクトリ内のアカウントのみ」
  4. リダイレクト URI:空欄のままにします(デバイスコードフローを使用します)
  5. 「登録」をクリックします
2. API のアクセス許可を設定する
  1. アプリで → API のアクセス許可 → アクセス許可の追加に移動します
  2. Microsoft Graph → 委任されたアクセス許可を選択します
  3. Mail.ReadWrite、Mail.Send を追加します
  4. 「管理者の同意を与えます」をクリックします(または管理者に依頼します)
3. パブリッククライアントフローを有効にする
  1. アプリで → 認証に移動します
  2. 「詳細設定」の「パブリッククライアントフローを許可する」をはいに設定します
  3. 保存します
4. ID を控える
  • アプリケーション(クライアント)ID:アプリの概要ページにあります
  • ディレクトリ(テナント)ID:アプリの概要ページにあります
5. インストールと設定
# Install dependencies
pip install msal requests

# Make executable
chmod +x skills/m365-mail/scripts/m365mail.py

# Optional: symlink to PATH
ln -s $(pwd)/skills/m365-mail/scripts/m365mail.py /usr/local/bin/m365mail

# Configure
m365mail setup --client-id <YOUR_CLIENT_ID> --tenant-id <YOUR_TENANT_ID>

# Authenticate (opens browser for device code)
m365mail auth

コマンド

受信トレイを一覧表示
m365mail inbox                    # Last 20 messages
m365mail inbox -n 50              # Last 50 messages
m365mail inbox -u                 # Unread only
m365mail inbox -v                 # With preview
m365mail inbox --json             # JSON output
メッセージを読む
m365mail read <message_id>        # Full message
m365mail read <id> --max-length 500  # Truncate body
m365mail read <id> --json         # JSON output
検索
m365mail search "quarterly report"      # Full-text search
m365mail search -f [email protected]     # From specific sender
m365mail search -u                      # Unread only
m365mail search -a                      # Has attachments
m365mail search "budget" -f [email protected] -u  # Combine filters
メールを送信
m365mail send --to [email protected] --subject "Hello" --body "Message body"
m365mail send --to [email protected] [email protected] --cc [email protected] --subject "Hi" --body "Text"
m365mail send --to [email protected] --subject "Report" --body-file report.txt
m365mail send --to [email protected] --subject "HTML" --body "<h1>Hi</h1>" --html
メッセージを管理
m365mail folders                  # List all folders
m365mail move <message_id> Archive    # Move to folder
m365mail move <message_id> "Deleted Items"
m365mail delete <message_id>      # Permanently delete
m365mail mark <message_id> --read     # Mark read
m365mail mark <message_id> --unread   # Mark unread

出力形式

  • デフォルト:人が読みやすい表/テキスト
  • --json:機械処理用の JSON(プログラムからアクセスする場合に使用)
  • -v/--verbose:メッセージのプレビューを含めます

メッセージ ID

メッセージは AAMkAGI2... のような長い ID で識別されます。コマンドでは次の形式を使用できます。

  • 完全な ID
  • ID の先頭部分(通常、先頭 8 文字以上で一意になります)

受信トレイ/検索結果には、参照しやすいように [AAMkAGI2] の形式で ID の先頭部分が表示されます。

トークンの保存先

トークンは ~/.m365mail/ にキャッシュされます。

  • config.json - クライアント ID/テナント ID
  • token_cache.json - OAuth トークン(自動更新)

トラブルシューティング

「キャッシュされたトークンがありません」:m365mail auth を実行します

アクセス許可が拒否されました:Mail.ReadWrite と Mail.Send のアクセス許可が付与されていることを確認します(管理者の同意が必要な場合があります)

トークンの有効期限が切れました:ツールが自動更新します。問題が解決しない場合は、もう一度 m365mail auth を実行します

コメント