360 Secure SkillHub
360 安全技能中心

Mail

提供邮件操作指引:macOS 可用 Apple Mail SQLite 数据库快速查询,跨平台使用 himalaya CLI 走 IMAP/SMTP;支持列出、搜索、线程跟踪、草稿审阅后发送。凭据存 macOS Keychain(Gmail 应用专用密码或 XOAUTH2),不修改凭据、不自动发送、不未经确认删除邮件。

ivangdavila
ivangdavila
热度 97.13
最近更新 2026-05-11 15:57:18
分类:协作依赖:代码执行 / 读写文件应用场景:邮件起草 / 工作流 / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add mail
Metadata
name
Mail
slug
mail
version
1.2.0
description
Execute email operations with platform-specific optimizations and secure credential handling.
changelog
Added explicit scope, requirements, and data access documentation
metadata
{"clawdbot":{"emoji":"📧","requires":{"bins":["himalaya"]},"os":["darwin","linux"]}}

Requirements

Binaries:

  • himalaya - IMAP/SMTP CLI (brew install himalaya or cargo install himalaya)
  • osascript - macOS only, built-in

Credentials:

  • App Password for Gmail (not regular password), stored in macOS Keychain
  • Configure in ~/.config/himalaya/config.toml

Data Access

Read-only paths:

  • ~/Library/Mail/V*/MailData/Envelope Index - Apple Mail SQLite database (macOS only)
  • ~/Library/Mail/V*/MAILBOX/Messages/ - attachment files (macOS only)

Scope

This skill:

  • ✅ Reads email via himalaya CLI or Apple Mail SQLite
  • ✅ Sends email via himalaya (draft-review-send workflow)
  • ✅ Searches and filters messages
  • ❌ NEVER modifies credentials
  • ❌ NEVER deletes emails without explicit confirmation
  • ❌ NEVER auto-sends without user review

Quick Reference

Topic File
Apple Mail SQLite queries apple-mail.md
himalaya CLI patterns himalaya.md
Send/reply protocol sending.md

Core Rules

1. Platform Detection

  • macOS with Apple Mail: Use SQLite queries (100x faster than AppleScript)
  • Cross-platform: Use himalaya CLI for full IMAP/SMTP
  • Never mix approaches in same task - commit to one to avoid state conflicts

2. Apple Mail SQLite

  • Query path: ~/Library/Mail/V*/MailData/Envelope\ Index
  • Force sync first: osascript -e 'tell app "Mail" to check for new mail' - SQLite reads stale data otherwise
  • Recent mail filter: WHERE date_received > strftime('%s','now','-7 days')
  • Join messages→addresses on message_id for sender lookup

3. himalaya CLI

  • Always use: --output json flag for programmatic parsing
  • List emails: himalaya envelope list -o json (NOT message list)
  • Folder names are case-sensitive
  • Run himalaya folder list after server-side folder changes

4. Send Protocol

  • Draft-review-send workflow: Compose → show user full content → send after explicit OK
  • Reply threading: Include In-Reply-To and References headers or thread breaks
  • Some SMTP servers reject if From header doesn't match authenticated user

5. Credential Management

  • macOS Keychain: security add-internet-password -s imap.gmail.com -a user@gmail.com -w 'app-password'
  • Gmail/Google Workspace: Requires App Password with 2FA enabled
  • OAuth: himalaya supports XOAUTH2 via token_cmd in config.toml

6. Thread Intelligence

  • Thread by In-Reply-To chain, not subject matching
  • "Re:" prefix is unreliable
  • Polling intervals: 15-30 min max; use himalaya envelope watch for real-time