# Guia: Como enviar e-mails pela API HTTP do Sender25

<section id="bkmrk-objetivo-enviar-e-ma">#### Objetivo

Enviar e-mails via API HTTP REST do Sender25, sem precisar de configuração SMTP na aplicação.

</section>---

<section id="bkmrk-escopo-e-p%C3%BAblico-apl">#### Escopo e Público

- **Aplica-se a:** Integração de sistemas via API REST
- **Não cobre:** Envio via SMTP ou configuração de domínio e credenciais
- **Público-alvo:** Desenvolvedores que integram o Sender25 via API HTTP
 
</section>---

<section id="bkmrk-pr%C3%A9-requisitos-acess">#### Pré-requisitos

- Acesso ao painel do Sender25
- Credencial do tipo **API** criada no servidor de envio
- Domínio de envio configurado e verificado
 
</section>---

<section id="bkmrk-passos-%28sequ%C3%AAncia%29-p">#### Passos (sequência)

##### Passo 1 — Crie uma credencial do tipo API

No painel do Sender25, acesse **Credentials** no seu servidor de envio e crie uma credencial com o tipo **API**. Copie a chave gerada (sempre visível na listagem).

##### Passo 2 — Monte a requisição HTTP

Envie um `POST` para o endpoint de envio de mensagens:

 ```
POST https://<endereco-do-sender25>/api/v1/send/message
```

Cabeçalhos obrigatórios:

 ```
Content-Type: application/json
X-Server-API-Key: SUA_CHAVE_DE_API
```

##### Passo 3 — Envie o corpo da requisição

Exemplo de corpo JSON:

 ```
{
  "to": [{"address": "destinatario@exemplo.com", "name": "Nome"}],
  "from": "noreply@seudominio.com.br",
  "subject": "Confirmação de cadastro",
  "plain_body": "Olá! Seu cadastro foi confirmado.",
  "html_body": "<p>Olá! Seu cadastro foi <strong>confirmado</strong>.</p>"
}
```

##### Passo 4 — Interprete a resposta

A API sempre retorna HTTP `200`. O sucesso ou erro é indicado pelo campo `status` no JSON:

Resposta de sucesso:

 ```
{
  "status": "success",
  "data": {
    "message_id": "abc123...",
    "messages": {
      "destinatario@exemplo.com": { "id": 1, "token": "xyz..." }
    }
  }
}
```

Resposta de erro:

 ```
{
  "status": "error",
  "data": { "code": "UnauthenticatedFromAddress", "message": "..." }
}
```

Use o `message_id` para localizar a mensagem no painel do Sender25 e acompanhar o status de entrega.

</section>---

<section id="bkmrk-problemas-comuns-sta">#### Problemas comuns

##### status: "error" com code "AccessDenied"

A chave no header `X-Server-API-Key` está ausente ou incorreta. Verifique a chave na listagem de credenciais do tipo `API`.

##### status: "error" com code "UnauthenticatedFromAddress"

O endereço no campo `from` não pertence a um domínio verificado neste servidor. Verifique os domínios configurados.

##### Mensagem aceita mas não entregue

A API confirma o recebimento, não a entrega. Verifique o log de entregas no painel do Sender25 usando o `message_id` retornado.

</section>---

<section id="bkmrk-observa%C3%A7%C3%B5es-importan">#### Observações importantes

⚠️ Nunca exponha a chave de API em código client-side (JavaScript no navegador). Use sempre a API a partir do backend da sua aplicação.

ℹ️ A API aceita GET, POST, PUT e PATCH — embora POST seja o mais comum.

</section>---

<section id="bkmrk-controle-de-mudan%C3%A7as">#### Controle de Mudanças

 <details> <summary>Informações de controle de versão</summary>

- **Última revisão** 04-06-2026
- **Próxima revisão** 04-12-2026
- **Autor** Sender25
- **Versão** 1.1
 
 </details></section>