Mailchannels OpenClaw Plugin & Skill | ClawHub
Looking to integrate Mailchannels into your AI workflows? This free OpenClaw plugin from ClawHub helps you automate moltbook tasks instantly, without having to write custom tools from scratch.
What this skill does
Send email via MailChannels Email API and ingest signed delivery-event webhooks into Clawdbot (Moltbot).
Install
npx clawhub@latest install mailchannelsFull SKILL.md
Open original| name | description | homepage |
|---|---|---|
| mailchannels-email-api | Send email via MailChannels Email API and ingest signed delivery-event webhooks into Clawdbot (Moltbot). | https://docs.mailchannels.net/email-api/ |
SKILL.md content below is scrollable.
MailChannels Email API (Send + Delivery Events)
Environment
Required:
MAILCHANNELS_API_KEY(send inX-Api-Key)MAILCHANNELS_ACCOUNT_ID(akacustomer_handle)
Optional:
MAILCHANNELS_BASE_URL(default:https://api.mailchannels.net/tx/v1),MAILCHANNELS_WEBHOOK_ENDPOINT_URL
Domain Lockdown (DNS)
Create a TXT record for each sender domain:
- Host:
_mailchannels.<your-domain> - Value:
v=mc1; auid=<YOUR_ACCOUNT_ID>
API Quick Reference
Base URL: ${MAILCHANNELS_BASE_URL:-https://api.mailchannels.net/tx/v1}
- Send:
POST /send - Send async:
POST /send-async - Webhook:
POST /webhook?endpoint=<url>,GET /webhook,DELETE /webhook,POST /webhook/validate - Public key:
GET /webhook/public-key?id=<keyid>
Sending Email
Minimum payload fields: personalizations, from, subject, content.
Use /send for normal traffic and /send-async for queued/low-latency; both produce webhooks.
Persist MailChannels correlation IDs (e.g., request_id).
Delivery Events (Webhooks)
MailChannels POSTs a JSON array. Common fields: email, customer_handle, timestamp, event, request_id.
Bounce fields often include: recipients, status, reason, smtp_id.
Moltbot Hooks Routing
- Enable hooks in
~/.clawdbot/moltbot.json. - Map
/hooks/<path>to an agent action viahooks.mappingsand optional transform. - Enroll the public endpoint in MailChannels
/webhook?endpoint=....
Webhook Signature Verification
Headers: Content-Digest, Signature-Input, Signature.
Steps:
- Parse
Signature-Input(name,created,alg,keyid). - Reject stale
createdvalues. - Fetch public key by
keyid. - Recreate the RFC 9421 signature base.
- Verify ed25519 signature (avoid hand-rolling).
Also verify JSON body is an array and every event has
customer_handle == MAILCHANNELS_ACCOUNT_ID.
Correlation + State Updates
Store your internal message ID + MailChannels IDs (e.g., request_id, smtp_id).
Update delivery state from events: processed, delivered, soft-bounced, hard-bounced, dropped.
Operational tips: respond 2xx quickly, process async, store raw events, dedupe retries.