apple-mail について
apple-mailは、AppleScript経由でmacOSのApple Mailを操作するスキルです。メールの閲覧や検索、作成、送信、整理に対応します。
主な機能
- 01アカウントとメールボックスの一覧表示
- 02メールの閲覧と検索
- 03メール送信と下書き作成
- 04メールへの返信作成
- 05メールのアーカイブ、削除、状態変更
活用シーン
- 01メールボックスの未読メール確認
- 02特定メールの検索
- 03返信の作成や送信
- 04メールのアーカイブや既読化
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ rbouschery/ marketplace --skill apple-mailインストール後、Claude Code で/apple-mailを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
reference/applescript-patterns.mdscripts/archive-email.shcreate-draft.shcreate-reply-draft.shdelete-email.shget-email-by-id.shget-emails.shget-unread-count.shlist-accounts.shlist-mailboxes.shmark-read.shmark-unread.shsearch-emails.shsend-draft.shsend-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.sh | ID を指定して特定のメールを取得します | <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"
出力の解析
メールレコードを受け取ったら、次のように解析します。
|||で分割して個々のレコードを取得します- 各レコードを
<<>>で分割してフィールドを取得します - フィールドは次のとおりです。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 を参照してください。
コメント
Markdown 対応