Skip to main content

email

Send emails via Resend - one-off emails, bulk blasts, or automated drip campaigns. Triggers on: send email, email campaign, drip campaign, resend, blast email, email members, welcome emails.

跳到安装

来源信息

仓库
tylerprogramming/claude-skills
最近来源活动
2026年8月9日 15:56
检测到的 SKILL.md 语言
英语
星标
0
分支
2

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
10 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
email
description
Send emails via Resend - one-off emails, bulk blasts, or automated drip campaigns. Triggers on: send email, email campaign, drip campaign, resend, blast email, email members, welcome emails.
Email automation via Resend. Send one-off emails, bulk blasts to contact lists, or run multi-step drip campaigns. ## Config From `~/.claude/.env`: - `RESEND_API_KEY` - Resend API key - `RESEND_FROM` - Sender name and email (e.g. `Your Name <you@yourdomain.com>`) - `RESEND_REPLY_TO` - Reply-to email address ## Contact Sources The skill can send to: - **Individual emails** - via `--to email@example.com` for one-off sends - **Skool members** - via the `skool_members` SQLite table (synced by the skool skill), with filters for free/premium/vip - **Resend Contacts** - contacts synced to Resend dashboard for broadcasts and segments ## Database SQLite at `~/.claude/skills/skool/data/skool.db`. Uses a normalized 3-table design: **`email_campaigns`** - defines campaigns (name, trigger_type, trigger_filter, active) **`email_campaign_steps`** - steps in each campaign (step_number, delay_hours, subject_template, html_template, tag) **`email_sends`** - log of every email sent (campaign_id, step_number, member_id, email, sent_at, mailgun_id, opened_at) The campaign runner matches contacts against the campaign's `trigger_filter` SQL, checks `email_sends` for what step they're on, and sends the next one if enough time has passed. ## What to Do Based on User Request ### "send email" / "send an email to" Send a single email to a specific address. 1. Ask for: recipient, subject, body content 2. Draft the HTML email and show it to the user 3. Get confirmation 4. Run: `python3 ~/.claude/skills/email/send_email.py --subject "..." --html-file /tmp/email.html --to recipient@email.com` ### "blast email" / "email members" / "email everyone" Bulk email to all contacts (or a filtered subset). 1. Ask for: subject, email body content (or a topic to draft from) 2. Draft the HTML email and show it to the user 3. Ask which contacts to target (all, free only, premium only, or a custom filter) 4. Show recipient count and get confirmation 5. Run: `python3 ~/.claude/skills/email/send_email.py --subject "..." --html-file /tmp/email.html [--filter free|premium|vip|all] [--batch-size N] [--batch-offset N]` ### "drip campaign" / "welcome emails" / "email campaign" Run campaign checker. Finds contacts due for their next step and sends it. 1. Run: `python3 ~/.claude/skills/email/email_campaign.py [--campaign name]` 2. Report what was sent (or that no one is due) ### "campaign status" / "email status" Check without sending. 1. Run: `python3 ~/.claude/skills/email/email_campaign.py --dry-run` 2. Show who is due for which step ### "list campaigns" Show all campaigns, their steps, and send counts. 1. Run: `python3 ~/.claude/skills/email/email_campaign.py --list` ### "sync contacts" / "update resend contacts" Sync local contacts to Resend Contacts (create, update, delete). 1. Run: `python3 ~/.claude/skills/email/sync_contacts_resend.py` 2. Report creates, updates, and deletes ## Current Campaigns **new_member_welcome** (auto, 3 steps): - Step 1 "Welcome" - +1h after approval (templates/welcome.html) - Step 2 "Getting Started" - +24h after approval (templates/getting_started.html) - Step 3 "Self-Hosting" - +72h after approval (templates/self_hosting.html) ## Adding a New Campaign To add a campaign, insert into `email_campaigns` and `email_campaign_steps`: ```sql INSERT INTO email_campaigns (name, description, trigger_type, trigger_filter, active, created_at, updated_at) VALUES ('campaign_name', 'description', 'auto|manual', 'SQL WHERE clause for contacts', 1, datetime('now'), datetime('now')); INSERT INTO email_campaign_steps (campaign_id, step_number, delay_hours, subject_template, html_template, tag) VALUES (campaign_id, 1, 0, 'Subject with {first_name}', 'templates/template.html', 'tag_name'); ``` ## Templates HTML templates at `~/.claude/skills/email/templates/`. Use `{first_name}` as placeholder. ## Rules - Always show email content and get confirmation before sending - Never auto-send without user approval - No em dashes in any email content - Tag emails with their type for Resend tracking - All sends are logged in `email_sends` (both campaign and one-off blasts)
在 GitHub 查看