用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/tomevault-io/skills-registry --skill sending-emails命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
| Use when this capability is needed.
> Use when this capability is needed.
Review architecture and API design for the vfs-s3 project. Use when the user mentions @architect, asks to review an issue's design, discuss module boundaries, API shape, or architectural decisions for vfs-s3. Also trigger when the user wants to create an ADR (Architecture Decision Record) or evaluate a technical approach for the project. Intended for dispatch from Codex automation or Claude routines; GitHub trigger phrase: @vfs-s3-bot please prepare design doc Use when this capability is needed.
基于 SOC 职业分类
正在显示 SKILL.md
| name | sending-emails |
| description | Use when configuring email sending, troubleshooting email delivery, |
| metadata | {"author":"abdullahmalik17"} |
FastMCP server for sending emails via Gmail API.
# Start MCP server
python src/mcp_servers/email_sender.py
# Or via scripts
python scripts/run.py
send_email(to, subject, body, cc, bcc, requires_approval) - Send or queue emailsend_from_template(template_name, to, variables, requires_approval) - Template-based sendarchive_email(message_id) - Archive sent emailWhen FTE_ROLE=cloud, ALL emails are forced to approval workflow regardless of requires_approval flag:
if role == "cloud":
requires_approval = True # Always enforced
Maximum 5 total recipients (to + cc + bcc combined). Exceeding returns error:
Error: Recipient limit exceeded. Max 5 allowed, got {count}.
Sending requires different token than reading:
token_email.json - For sending (gmail.send scope)token.json - For reading (gmail.readonly scope)When using send_from_template, variables MUST include subject:
# ✗ FAILS
send_from_template("welcome.j2", "user@example.com", {"name": "John"})
# ✓ WORKS
send_from_template("welcome.j2", "user@example.com", {"name": "John", "subject": "Welcome!"})
When audit log read fails, rate limiting blocks (fail-safe):
except Exception:
return False # Block on error, not allow
| Limit | Value |
|---|---|
| Hourly | 10 emails |
| Daily | 100 emails |
Tracked via Vault/Logs/email_audit_log.md.
Set requires_approval=True to queue email for human review.
Approval files created in Vault/Pending_Approval/:
Vault/Approved/ to sendRequired in config/:
credentials.json - Google OAuth credentialstoken_email.json - Gmail send token (separate from read)Templates directory: src/templates/email/
FTE_ROLE=local|cloud # cloud forces approval for all sends
Run: python scripts/verify.py
watching-gmail - Read and categorize incoming emailsdigital-fte-orchestrator - Approval workflow processingConverted and distributed by TomeVault — claim your Tome and manage your conversions.