> For an agent: the map of this documentation is at https://escouade.io/en/mail/docs/llms.txt; every page exists in Markdown, at the same address with `.md` appended.

# `send_email`

Send an e-mail.

Writes a first message to a recipient from an inbox. The message does not leave straight away: it enters the queue and leaves within the space's sending window (working days, Paris time), within the inbox's daily quota (warm-up) and with spacing between two sends; or it stays a draft if a human approval is required. Refused if the recipient is blocked (unsubscribed, dead address), if they recently received a first message from this inbox (to follow up: reply_to_thread), or if the inbox is suspended. A one-click unsubscribe link is always added.

## Access

- **Key**: an Escouade Mail key with `send`.
- **Space**: a verified space.
- **Changes nothing**: no, it acts.
- **Safe to replay**: use an `idempotency_key` where the tool offers one.

## Parameters

| Parameter | Type | Required | Description |
|---|---|---|---|
| `inbox_id` | string | yes | Sending inbox (inb_…, see list_inboxes). |
| `to` | string | yes | Recipient's address. |
| `to_name` | string | no | Recipient's name, optional. |
| `subject` | string | yes | Subject (one line). |
| `test` | boolean | no | Test send, to yourself only (the space's human's e-mail or another inbox of the space): no duplicate rule, and its unsubscribe link unsubscribes nobody. |
| `from_address` | string | no | The inbox's main address or an allowed alias (list_inboxes). |
| `text` | string | yes | Plain text of the message (required). Write {{unsubscribe_url}} to place the unsubscribe link yourself; otherwise Escouade Mail adds a notice in the footer, as long as the correspondent has not written in the thread. No other placeholder in double braces is accepted: replace them beforehand. |
| `html` | string | no | Optional HTML version, same content as text. |
| `reply_to` | string | no | Reply-to address, if it differs from the inbox. |
| `metadata` | object | no | The agent's free data (8,000 characters at most), returned as it is in reads. |
| `requires_approval` | boolean | no | true: the message stays a draft until a human approves it (approve_message). Some spaces always require it. |
| `send_after` | string | no | Not before this date (ISO 8601, or Paris time without a time zone). The window (except for a reply in a conversation) and the quotas apply afterwards. |
| `idempotency_key` | string | no | Unique key for this send (1 to 255 characters). Replaying the same key with the same content returns the message already created; with different content, an explicit refusal. Recommended for every retry. |

## Call it

```sh
curl -s https://api.subagent.fr/v1/send_email \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer sak_…' \
  -d '{"inbox_id": "…", "to": "…", "subject": "…", "text": "…"}'
```

The full page in French, with the response fields and every refusal the tool can return: [/mail/docs/reference/send_email](https://escouade.io/mail/docs/reference/send_email).
