email-resend
Send and receive emails using the Resend API. Use for: (1) sending emails directly via Resend API, (2) receiving email notifications via cron, (3) drafting replies with proper threading, (4) downloading attachments from inbound emails. **Required env vars:** RESEND_API_KEY (API key). **Optional env vars:** DEFAULT_FROM_EMAIL, DEFAULT_FROM_NAME (fall back to preferences file if not set). **License: Apache-2.0** — See LICENSE file for details.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/ivelin/email-resendLicense
Apache License 2.0 — See LICENSE file for full text.
Email via Resend
Send and receive emails using the Resend API.
Configuration
No config file needed. The skill auto-discovers settings from:
- Environment variables — RESEND_API_KEY (required), DEFAULT_FROM_EMAIL/NAME (optional)
- Preferences file —
memory/email-preferences.md(from_email, from_name, telegram target) - OpenClaw context — channel, chat_id, thread_id (for cron delivery)
Required Environment Variables
export RESEND_API_KEY="re_123456789" # Resend API key (required)
# DEFAULT_FROM_EMAIL and DEFAULT_FROM_NAME are optional - loaded from preferences file if not set
Preferences File
The skill reads sender info from memory/email-preferences.md:
---
from_email: [email protected]
from_name: Your Name
telegram:
target: "CHAT_ID"
threadId: "THREAD_ID"
---
Scripts check env vars first, then fall back to preferences file.
First-Time Setup
When the skill is first invoked, the sub-agent should:
-
Check context — OpenClaw context already has:
context.user.email(from USER.md)context.channel(from current session)context.chat_idcontext.thread_id(for topics)
-
Check memory — Use
memory_gettool:- Try:
memory_get path="memory/email-preferences.md" - If not found, ask user to create
memory/email-preferences.md(NO fallback scanning)
- Try:
-
If missing, ask user — Via chat message (IMPORTANT for cron jobs):
- "Which email should I send from?" (from_email)
- "What's your display name for sent emails?" (from_name)
- "Which channel/topic should I notify you on?" (telegram target + threadId)
Then create
memory/email-preferences.mdwith their answers using the format above. -
Commit to memory — Write preferences to persist across sessions:
write path="memory/email-preferences.md" content="--- from_email: $EMAIL from_name: $NAME telegram: target: \"$CHAT_ID\" threadId: \"$THREAD_ID\" --- # Email Notification Preferences Saved auto-configured "This ensures memory_get finds it in future sessions. Use MD format with YAML frontmatter.
Format (MD with YAML frontmatter):
---
from_email: [email protected]
from_name: Your Name
telegram:
target: \"123456789\"
threadId: \"334\"
---
# Email Notification Preferences
- **Updated:** 2026-01-01
- **Purpose:** Default notification channel for email alerts
Important: Store in memory/email-preferences.md (NOT MEMORY.md) - isolated cron jobs can read this file via memory_get but NOT MEMORY.md.
Context Fields (Available in Sub-Agent)
| Field | Source | Example |
|---|---|---|
user.email | USER.md | [email protected] |
user.name | USER.md | Your Name |
channel | OpenClaw | from context |
chat_id | OpenClaw | 123456789 |
thread_id | OpenClaw | 334 |
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-ivelin-email-resend": {
"enabled": true,
"auto_update": true
}
}
}