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.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"

解析输出

收到邮件记录时,请按以下方式解析:

  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

注意事项

  • 脚本需要运行 macOS,并配置好 Apple Mail
  • Apple Mail 中必须至少设置一个账户
  • 首次运行可能会触发 macOS 自动化权限提示
  • 可选参数为空时,请传递空字符串 ""
  • 需要数组(多个收件人)的脚本,请传递以逗号分隔的值

参考

如需了解高级 AppleScript 模式和自定义方法,请参阅 ./reference/applescript-patterns.md。

评论

支持 Markdown