OpenClaw skill
Custom Mail ships an OpenClaw skill so an agent can pull the Docker image, set secrets, and start the console. The skill lives in the repo at skills/custom-mail/SKILL.md (ClawHub slug: custom-mail-skill, version 1.0.0).
It requires the docker binary on the machine where the agent runs. It does not deploy to Cloudflare; that is still Deploy.
Install
ClawHub
clawhub install custom-mail-skillBrowse the published skill: custom-mail-skill on ClawHub (version 1.0.0). CLI notes: ClawHub.
From this repository
Copy the skill folder into the OpenClaw workspace (highest priority) or the shared skills directory:
git clone https://github.com/InnoNestX/Custom-Mail.git
cp -R Custom-Mail/skills/custom-mail ~/.openclaw/workspace/skills/custom-mailShared install (all agents on that instance):
cp -R Custom-Mail/skills/custom-mail ~/.openclaw/skills/custom-mailOpenClaw reloads SKILL.md from those directories. See Skills.
What the skill does
When you ask to run Custom Mail locally, the agent should:
- Confirm Docker is available.
- Set
ADMIN_PASSWORD(required) and the provider API key you give it. - Optionally set
MAIL_PROVIDER,MAIL_THEME,MAIL_LAYOUT,MAIL_LOGO. docker pullxuxuclassmate/custom-mail:1.0.0(or:latest/ GHCRghcr.io/innonestx/custom-mail:1.0.0).docker runon port 8787 (orPORT).- Tell you to open http://localhost:8787 and sign in.
Health check: curl -s http://localhost:8787/api/health.
Full Docker flags and Compose: Docker.
Environment the skill knows
| Variable | Required | Description |
|---|---|---|
ADMIN_PASSWORD | yes | Console login |
MAIL_PROVIDER | no | brevo, resend, sendgrid, mailgun, postmark, mailersend, smtp2go, sparkpost |
MAIL_THEME | no | forest, midnight, ocean, paper, rose, slate, aurora, sunset, nord, … |
MAIL_LAYOUT | no | card, minimal, banner, digest, compact |
MAIL_LOGO | no | auto, image, monogram, none |
BREVO_API_KEY | no | Default provider; needed to send unless another key is set |
MAIL_API_KEY | no | Fallback API key |
RESEND_API_KEY | no | With MAIL_PROVIDER=resend |
SENDGRID_API_KEY | no | With MAIL_PROVIDER=sendgrid |
PORT | no | Container port, default 8787 |
The skill metadata lists the same keys under metadata.openclaw.envVars. Map them in ~/.openclaw/openclaw.json if you keep secrets in the OpenClaw config instead of the chat.
Example prompts
Pull and run Custom Mail on port 8787 with ADMIN_PASSWORD=dev-secret and my Brevo key.Start the custom-mail Docker container with MAIL_PROVIDER=resend, MAIL_THEME=nord, and RESEND_API_KEY.Clone InnoNestX/Custom-Mail and bring it up with docker compose.Chinese triggers in the skill include 「帮我本地跑一下 Custom Mail」 and 「用 Docker 启动发信控制台」.
After it is up
Use the console: compose Markdown, preview, attach files, send, browse history.
To change baked-in mail.json / plugins/ files, clone the repo and rebuild with Compose. Slot env vars still override the active plugin without a rebuild.
Production
The skill can remind you of the Cloudflare path, but secrets for production stay on the Worker:
git clone https://github.com/InnoNestX/Custom-Mail.git
cd Custom-Mail
npx wrangler secret put ADMIN_PASSWORD
npx wrangler secret put BREVO_API_KEY
npm run deploySee Deploy.