# Send email

Agents send email from the project's address, under your policy. The project needs its email source: without it, `email_send` answers `EMAIL_SOURCE_REQUIRED`.

## Send

```text
email_send({
  to: ["customer@example.com"],
  subject: "Your order has shipped",
  text: "Hi, your order 1042 left our warehouse today."
})
```

The email goes out from `"Acme" <acme@in.brynth.ai>`, with your project's name and slug. `html` adds an HTML version; `attachments` takes up to 10 files, 10 MB in total: files from the project disk (paths or `disk://` references) or attachments of received emails (`evt_…/name`).

The result has a `status`:

- `queued`: accepted for delivery;
- `pending`: your policy asked a person and the answer did not come within `wait_seconds`; the `request_id` tells you which request to follow;
- `cancelled`: the person denied it or the request expired; `comment` carries the person's comment, if any.

## Policy

With no matching rule, `email_send` is queued at once. A rule can require approval, for example for recipients outside your domain:

```json
{ "match": { "tool": "email_send", "to_domain_not_in": ["acme.example"] }, "effect": "require_approval" }
```

Rules can match `to_domain_in`, `to_domain_not_in`, `agent` and `platform`. See [Requests and policy](/concepts/requests-and-policy.md).

## Replies

By default (`reply_to_inbox: true`) replies come back to the project inbox as `email.received` events with `reply_to` set. See [Receive email](/guides/receive-email.md).

## Limits

50 emails per 24 hours and 1,000 per calendar month (UTC) per project, one per recipient, up to 50 recipients per email. If more than 0.1% of the emails of the last 7 days are marked as spam, or more than 5% bounce once the project has sent at least 20 in that window, sending stops for the project and `email_send` answers `SEND_BLOCKED`. Only Brynth support can lift the block.
