> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sendaki.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Enviar emails

> Todos os casos de envio suportados por POST /emails.

`POST /emails` envia um email via Amazon SES. Suporta texto simples, HTML, múltiplos destinatários, CC/BCC, reply-to e anexos.

<Note>
  O endereço `from` tem de pertencer a um domínio verificado. A verificação de domínios é feita no workspace ([app.sendaki.tech](https://app.sendaki.tech) → Settings → Domains), não por esta API.
</Note>

## Texto simples

```json theme={null}
{
  "from": "hello@meudominio.com",
  "to": ["destinatario@example.com"],
  "subject": "Olá!",
  "body": {
    "text": "Olá! Isto é um email de texto simples."
  }
}
```

## HTML e texto (recomendado)

Envia sempre as duas versões — clientes de email sem suporte a HTML mostram a versão em texto.

```json theme={null}
{
  "from": "hello@meudominio.com",
  "to": ["destinatario@example.com"],
  "subject": "Olá!",
  "body": {
    "html": "<h1>Olá!</h1><p>Isto é um email em HTML.</p>",
    "text": "Olá! Isto é um email de texto simples."
  }
}
```

## Nome de exibição do remetente

Usa `from_name` para melhorar a entregabilidade — o Gmail penaliza remetentes sem nome de exibição.

```json theme={null}
{
  "from": "noreply@meudominio.com",
  "from_name": "Minha Loja",
  "to": ["cliente@example.com"],
  "subject": "Confirmação de encomenda",
  "body": {
    "html": "<p>A sua encomenda foi confirmada.</p>",
    "text": "A sua encomenda foi confirmada."
  }
}
```

## Múltiplos destinatários

```json theme={null}
{
  "from": "hello@meudominio.com",
  "to": ["joao@example.com", "maria@example.com", "pedro@example.com"],
  "subject": "Reunião amanhã",
  "body": {
    "html": "<p>Confirmado para as 10h.</p>",
    "text": "Confirmado para as 10h."
  }
}
```

## CC e BCC

```json theme={null}
{
  "from": "hello@meudominio.com",
  "to": ["cliente@example.com"],
  "cc": ["gestor@meudominio.com"],
  "bcc": ["arquivo@meudominio.com"],
  "subject": "Proposta comercial",
  "body": {
    "html": "<p>Segue em anexo a proposta.</p>",
    "text": "Segue em anexo a proposta."
  }
}
```

## Reply-To

Útil quando o `from` é um endereço `noreply@` mas queres que as respostas cheguem a outra caixa.

```json theme={null}
{
  "from": "noreply@meudominio.com",
  "to": ["cliente@example.com"],
  "reply_to": ["suporte@meudominio.com"],
  "subject": "Confirmação de encomenda",
  "body": {
    "html": "<p>A sua encomenda foi confirmada.</p>",
    "text": "A sua encomenda foi confirmada."
  }
}
```

## Com anexos

Anexos são referenciados por `key` — faz o upload primeiro via [Anexos](/guides/attachments), depois usa a `key` devolvida aqui.

```json theme={null}
{
  "from": "hello@meudominio.com",
  "to": ["cliente@example.com"],
  "subject": "Fatura #001",
  "body": {
    "html": "<p>Segue em anexo a sua fatura.</p>",
    "text": "Segue em anexo a sua fatura."
  },
  "attachments": [
    {
      "filename": "fatura-001.pdf",
      "key": "attachments/org123/1778360121432-fatura-001.pdf",
      "content_type": "application/pdf"
    }
  ]
}
```

Múltiplos anexos funcionam da mesma forma — basta adicionar mais entradas ao array.

## Campos do body

| Campo         | Tipo      | Obrigatório | Descrição                                                    |
| ------------- | --------- | ----------- | ------------------------------------------------------------ |
| `from`        | string    | Sim         | Endereço de envio — tem de pertencer a um domínio verificado |
| `from_name`   | string    | Não         | Nome de exibição do remetente                                |
| `to`          | string\[] | Sim         | Lista de destinatários (mínimo 1)                            |
| `cc`          | string\[] | Não         | Destinatários em cópia                                       |
| `bcc`         | string\[] | Não         | Destinatários em cópia oculta                                |
| `reply_to`    | string\[] | Não         | Endereço(s) para onde vai a resposta                         |
| `subject`     | string    | Sim         | Assunto do email                                             |
| `body.html`   | string    | Um dos dois | Versão HTML                                                  |
| `body.text`   | string    | Um dos dois | Versão em texto simples                                      |
| `attachments` | object\[] | Não         | Ficheiros já uploaded (ver [Anexos](/guides/attachments))    |

## Resposta

```json theme={null}
201 Created
{
  "message_id": "0100019e0a483464-9b289638-9a1b-4bc2-826b-4841a416a8ab-000000",
  "from": "hello@meudominio.com",
  "to": ["destinatario@example.com"],
  "subject": "Olá!",
  "attachments": []
}
```

Guarda o `message_id` para correlacionar com eventos de entrega no teu próprio sistema.

<Tip>
  Durante o período de testes (Sandbox) do SES, só é possível enviar para endereços verificados — enviar para um endereço não verificado devolve `422`. Um `422` também acontece se o domínio do `from` ainda não estiver verificado no workspace. Contacta o suporte do Sendaki para saíres do Sandbox em produção.
</Tip>

Ver todos os parâmetros, respostas e erros em [POST /emails](/api-reference/introduction).
