Install
openclaw skills install @deniz-mailchannels/mailchannelsSend email via MailChannels Email API and ingest signed delivery-event webhooks into Clawdbot (Moltbot).
openclaw skills install @deniz-mailchannels/mailchannelsRequired:
MAILCHANNELS_API_KEY (send in X-Api-Key)MAILCHANNELS_ACCOUNT_ID (aka customer_handle)Optional:
MAILCHANNELS_BASE_URL (default: https://api.mailchannels.net/tx/v1), MAILCHANNELS_WEBHOOK_ENDPOINT_URLCreate a TXT record for each sender domain:
_mailchannels.<your-domain>v=mc1; auid=<YOUR_ACCOUNT_ID>Base URL: ${MAILCHANNELS_BASE_URL:-https://api.mailchannels.net/tx/v1}
POST /sendPOST /send-asyncPOST /webhook?endpoint=<url>, GET /webhook, DELETE /webhook, POST /webhook/validateGET /webhook/public-key?id=<keyid>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).
Compliance requirement (required on every outbound message):
headers.X-AI-Bot identifying OpenClaw and its version, e.g. openclaw-2026.2.4.headers.List-Unsubscribe with an unsubscribe mechanism, e.g. <mailto:unsubscribe@example.com>.Compliant payload example:
{
"from": { "email": "sender@example.com" },
"personalizations": [
{ "to": [{ "email": "recipient@example.com" }] }
],
"subject": "Message Subject",
"content": [
{ "type": "text/plain", "value": "This email is from OpenClaw." }
],
"headers": {
"X-AI-Bot": "openclaw-2026.2.4",
"List-Unsubscribe": "<mailto:unsubscribe@example.com>"
}
}
MailChannels POSTs a JSON array. Common fields: email, customer_handle, timestamp, event, request_id.
Bounce fields often include: recipients, status, reason, smtp_id.
~/.clawdbot/moltbot.json./hooks/<path> to an agent action via hooks.mappings and optional transform./webhook?endpoint=....Headers: Content-Digest, Signature-Input, Signature.
Steps:
Signature-Input (name, created, alg, keyid).created values.keyid.customer_handle == MAILCHANNELS_ACCOUNT_ID.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.
For maintained skills covering SDKs, domain setup and operations beyond this quick reference, see the Codex plugin (npx skills add mailchannels/mailchannels-codex-plugin --list) and the Claude Code plugin.