---
title: "Email Module"
module_id: "email"
version: "1.0.0"
category: "system"
autonomy: "agent-capable"
generated: true
generated_at: "2026-05-04"
---

# Email

> Provider-agnostic email sender. Routes system emails through SMTP or Resend.

Ships with **1 agent skill**.

## Quick Facts

| Property | Value |
|----------|-------|
| **Module ID** | `email` |
| **Version** | 1.0.0 |
| **Category** | system |
| **Autonomy** | agent-capable |
| **Core** | Yes |
| **Capabilities** | `data:write` |
| **MCP-exposed skills** | 1 |
| **Owns tables** | — |

## Integrations

**Optional:** `smtp`, `resend`

## Skills

These skills are seeded into `agent_skills` when the module is enabled and exposed via MCP.
External operators (FlowPilot, OpenClaw, Claude Desktop, custom MCP clients) can call them directly.

| Skill | Scope | Description |
|-------|-------|-------------|
| `scan_gmail_inbox` | internal | Scan connected Gmail inbox for business signals — new leads, partnership inquiries, support requests. Use when: identifying incoming business opportunities from email; automating email categorizati… |

## Module API Contract

**Input fields:** `to`, `subject`, `html`, `text`, `fromOverride`, `replyTo`, `tags`

**Output fields:** `success`, `provider`, `error`

## File Map

| Purpose | Path |
|---------|------|
| Module definition | `src/lib/modules/email-module.ts` |

## Contributing

To enhance this module, see [Contributing Guide](../contributing/contributing.md).

Key rules:
- Follow `ModuleDefinition<I, O>` contract pattern
- All schema changes require idempotent migrations
- Skills must be self-describing ([Law 2](../concepts/openclaw-law.md))
- Blocks are interfaces, not pipelines ([Law 3](../concepts/openclaw-law.md))
- New skills must pass the [Agent Contract Integrity](../architecture/agent-contract-integrity.md) checklist (`bun run lint:skills`)

---

*This file is auto-generated by `scripts/generate-module-docs.ts`. Do not edit manually — re-run the script after changing the module definition.*