mcpField
A
apple-mail

apple-mail

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

apple-mail について

apple-mailは、AppleScript経由でmacOSのApple Mailを操作するスキルです。メールの閲覧や検索、作成、送信、整理に対応します。

主な機能

  1. 01アカウントとメールボックスの一覧表示
  2. 02メールの閲覧と検索
  3. 03メール送信と下書き作成
  4. 04メールへの返信作成
  5. 05メールのアーカイブ、削除、状態変更

活用シーン

  1. 01メールボックスの未読メール確認
  2. 02特定メールの検索
  3. 03返信の作成や送信
  4. 04メールのアーカイブや既読化

インストール

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

$npx skills add https://github.com/rbouschery/marketplace --skill apple-mail

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

reference/
applescript-patterns.md
scripts/
archive-email.sh
create-draft.sh
create-reply-draft.sh
delete-email.sh
get-email-by-id.sh
get-emails.sh
get-unread-count.sh
list-accounts.sh
list-mailboxes.sh
mark-read.sh
mark-unread.sh
search-emails.sh
send-draft.sh
send-email.sh

詳細

Apple Mail スキル

このスキルでは、AppleScript を使って macOS 上の Apple Mail を操作するコマンドを提供します。

利用可能なスクリプト

すべてのスクリプトは ../../scripts/ ディレクトリ(このファイルからの相対パス)にあります。プラグインのルートディレクトリから bash 経由で実行してください。

アカウントとメールボックスの管理
スクリプト目的引数
list-accounts.shすべてのメールアカウントを一覧表示しますなし
list-mailboxes.shメールボックス/フォルダーを一覧表示します[account](任意)
get-unread-count.sh未読メールの件数を取得します[account] [mailbox](任意)
メールの読み取り
スクリプト目的引数
get-emails.sh最近のメールを取得します[account] [mailbox] [limit] [include_content] [unread_only]
get-email-by-id.shID を指定して特定のメールを取得します<id> [account] [mailbox] [include_content]
search-emails.shメールを検索します<query> [account] [mailbox] [limit]
送信と作成
スクリプト目的引数
send-email.shメールを送信します<to> <subject> <body> [cc] [bcc] [from]
create-draft.sh下書きメールを作成します<subject> <body> [to] [cc] [bcc] [from]
create-reply-draft.shメールへの返信を作成します<message_id> <body> [reply_all] [account] [mailbox]
send-draft.sh最前面の下書きを送信しますなし
メールの管理
スクリプト目的引数
archive-email.shメールをアーカイブします<message_id> [account] [mailbox] [archive_mailbox]
delete-email.shメールを削除します<message_id> [account] [mailbox]
mark-read.shメールを既読にします<message_id> [account] [mailbox]
mark-unread.shメールを未読にします<message_id> [account] [mailbox]

出力形式

スクリプトは、構造化された出力に区切り文字を使用します。

  • <<>> はレコード内のフィールドを区切ります
  • ||| は複数のレコードを区切ります
  • ERROR: プレフィックスはエラーメッセージを示します
メールレコード形式
id<<>>subject<<>>sender<<>>to<<>>cc<<>>bcc<<>>dateSent<<>>isRead<<>>content|||

使用例

アカウントを一覧表示する
./scripts/list-accounts.sh
INBOX から最近のメールを取得する
./scripts/get-emails.sh "" "INBOX" 10 false false
最近の未読メールを本文付きで取得する
./scripts/get-emails.sh "" "INBOX" 10 true true
ID を指定して特定のメールを取得する
./scripts/get-email-by-id.sh 12345 "iCloud" "INBOX" true
メールを検索する
./scripts/search-emails.sh "meeting notes" "" "" 20
メールを送信する
./scripts/send-email.sh "[email protected]" "Subject" "Body text"
CC と BCC を付けて送信する
./scripts/send-email.sh "[email protected]" "Subject" "Body" "[email protected]" "[email protected]"
下書きを作成する
./scripts/create-draft.sh "Draft Subject" "Draft body" "[email protected]"
メールに返信する
./scripts/create-reply-draft.sh 12345 "Thanks for your message!" false "iCloud" "INBOX"
最前面の下書きを送信する
./scripts/send-draft.sh
メールをアーカイブする
./scripts/archive-email.sh 12345 "iCloud" "INBOX"
既読/未読にする
./scripts/mark-read.sh 12345 "iCloud" "INBOX"
./scripts/mark-unread.sh 12345 "iCloud" "INBOX"

出力の解析

メールレコードを受け取ったら、次のように解析します。

  1. ||| で分割して個々のレコードを取得します
  2. 各レコードを <<>> で分割してフィールドを取得します
  3. フィールドは次のとおりです。id、subject、sender、to、cc、bcc、dateSent、isRead、content

bash での解析例:

IFS='|||' read -ra emails <<< "$output"
for email in "${emails[@]}"; do
    IFS='<<>>' read -ra fields <<< "$email"
    id="${fields[0]}"
    subject="${fields[1]}"
    sender="${fields[2]}"
    # ... etc
done

注意事項

  • スクリプトの実行には、Apple Mail が設定された macOS が必要です
  • Apple Mail に少なくとも 1 つのアカウントを設定しておく必要があります
  • 初回実行時に、自動操作に関する macOS のアクセス許可ダイアログが表示される場合があります
  • 任意の引数を空にする場合は、空文字列 "" を渡してください
  • 配列(複数の宛先)が必要なスクリプトには、カンマ区切りの値を渡してください

リファレンス

AppleScript の高度なパターンとカスタマイズについては、./reference/applescript-patterns.md を参照してください。

コメント