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

# E-mail

> Escolha o provedor de envio (Amazon SES, SMTP, SendGrid ou SendPulse), configure o remetente e os templates de header e rodapé

A configuração do canal E-mail tem duas partes independentes: **por onde o e-mail sai** (provedor e remetente) e **como ele se apresenta** (header e rodapé dos templates).

## 1. Escolher o provedor

Em **Configurações → Canais → Email**, a tela mostra um card para cada provedor liberado na sua conta. Clique em **Configurar** no provedor desejado.

| Provedor | Quando usar |
| - | - |
| Amazon SES | Envio pela infraestrutura da Amazon, com credenciais de um usuário IAM |
| SMTP | Qualquer servidor SMTP próprio ou de terceiros, com STARTTLS ou SSL/TLS |
| SendGrid (Twilio) | Envio pela API do SendGrid, com eventos de entrega e rejeição |
| SendPulse | Envio pela API da SendPulse, com as credenciais da sua conta |

**Um provedor por vez fica ativo**: é o último que você salvou, marcado como **Ativo** no card. Salvar outro provedor passa o envio para ele. O provedor ativo vale para todos os e-mails da conta: API, automações e campanhas.

> [!NOTE]
>
> Os provedores disponíveis são liberados por conta. Se o que você usa não aparecer, fale com a OctaSend.

Todos os provedores pedem os mesmos dois campos de remetente:

| Campo | Descrição |
| - | - |
| Nome do Remetente | Exibido no campo "De" do e-mail |
| Email do Remetente | Endereço de origem |

Depois de preencher, clique em **Testar Conexão** para validar as credenciais e em **Salvar**. Credenciais já salvas voltam **mascaradas** na tela: deixe o campo como está para manter o valor guardado, ou digite um novo para trocá-lo.

> [tab] Amazon SES
>
> | Campo | Descrição |
> | - | - |
> | AWS Region | Região do SES (ex.: `us-east-1`) |
> | AWS Access Key ID | Credencial de um usuário IAM com permissão `ses:SendEmail` na região |
> | AWS Secret Access Key | Secret do mesmo usuário |
>
> **Testar Conexão** confere as credenciais na região informada, sem enviar e-mail. Exige também o Email do Remetente preenchido. Mensagens de erro: *"Access Key ID inválido"*, *"Secret Access Key incorreto"*, *"Credenciais AWS inválidas"* e *"Preencha todos os campos obrigatórios"*.

> [tab] SMTP
>
> | Campo | Descrição |
> | - | - |
> | Host SMTP | Servidor SMTP |
> | Porta | Padrão `587` |
> | Usuário SMTP / Senha SMTP | Credenciais de autenticação |
> | SSL/TLS direto (porta 465) | Marque para conexão SSL/TLS direta; desmarque para STARTTLS |
>
> A porta `465` sempre usa SSL/TLS direto, mesmo com a opção desmarcada. **Testar Conexão** abre a conexão e autentica de verdade: *"Conexão SMTP estabelecida com sucesso (host:porta)"* ou *"Autenticação SMTP falhou — verifique usuário e senha"*. Host, usuário e senha são obrigatórios.

> [tab] SendGrid
>
> | Campo | Descrição |
> | - | - |
> | API Key | Criada em **Settings → API Keys** no SendGrid, com permissão de **Mail Send** |
>
> **Testar Conexão** confere a chave sem gastar cota de envio: *"API key do SendGrid validada com sucesso"*, *"API key inválida ou sem permissão de leitura"* ou *"A API key não tem permissão de envio (mail.send)"*.
>
> **Eventos de entrega** — depois do primeiro salvamento, a tela mostra a URL do webhook com o botão **Copiar**. No SendGrid, vá em **Settings → Mail Settings → Event Webhook**, cole a URL e marque os eventos **Delivered**, **Opened**, **Clicked**, **Bounced**, **Dropped** e **Spam Report**. Marque também **Unsubscribe** e **Group Unsubscribe** para que os descadastros feitos pelo SendGrid cheguem à OctaSend, inclusive o descadastro de grupo feito na página de preferências do SendGrid. A URL é gerada uma única vez e não muda nos salvamentos seguintes.
>
> Efeito de cada evento:
>
> | Evento do SendGrid | Efeito |
> | - | - |
> | Delivered | Preenche o **Entregue** do rastreamento no log, se ainda estiver vazio |
> | Open | Preenche o **Aberto** com a primeira abertura (e o **Entregue**, se ainda estiver vazio) |
> | Click | Preenche o **Clicado** (e o **Aberto** e o **Entregue**, se ainda estiverem vazios) |
> | Bounce, Dropped, Deferred | O log muda para **Falhou**, com o nome do evento como código e o motivo informado pelo SendGrid |
> | Spam Report, Unsubscribe, Group Unsubscribe | O status do log não muda, porque a mensagem foi entregue. O contato com esse e-mail fica descadastrado do e-mail — veja **Descadastro**, abaixo |
>
> A falha é definitiva: um evento de entrega ou clique que chegue depois não desfaz o status.

> [tab] SendPulse
>
> | Campo | Descrição |
> | - | - |
> | API ID / API Secret | Em **Configurações da conta → API**, no painel da SendPulse |
>
> O e-mail do remetente precisa estar verificado na conta SendPulse. **Testar Conexão** confere as credenciais e, se a conta tiver remetentes cadastrados, avisa quando o Email do Remetente não está entre eles: *"O remetente … não está verificado na sua conta SendPulse. Verificados: …"*.

> [!WARNING]
>
> A OctaSend valida as credenciais do provedor. Verificação de domínio e de remetente, SPF e DKIM são configurados diretamente no provedor (AWS SES, SendGrid, SendPulse ou o seu servidor SMTP).

## 2. Templates de header e rodapé

Em **Configurações → Templates de Email** você monta o header e o rodapé que envolvem o corpo dos e-mails.

* **Abas por idioma** — a aba **Padrão (todos os idiomas)** vale para qualquer idioma. Use **+ Adicionar idioma** para criar versões específicas (ex.: um header em inglês para `en`).
* **Vários templates por idioma** — cada aba tem as listas **Templates de Header** e **Templates de Footer**, com o botão **Novo template**. A estrela marca o **padrão** daquele idioma.
* **Editor** — cada template tem nome, editor visual de arrastar e soltar e prévia ao vivo. No header, a opção **Centralizar imagens automaticamente** centraliza todas as imagens dele nos e-mails enviados.
* **Ações** — **Salvar template**, **Definir como padrão** e **Remover**. O último template de um idioma não pode ser removido.

Cores e fonte do header e do rodapé seguem o [design system](https://docs.octasend.com.br/plataforma/design-system.md) padrão da conta; ajustes próprios são feitos no editor de cada template.

### Qual header e rodapé vão em cada e-mail

No template de e-mail de cada [comunicação](https://docs.octasend.com.br/plataforma/comunicacoes.md), os campos **Header do email** e **Footer do email** têm três opções:

| Opção | O que acontece |
| - | - |
| Padrão (automático por idioma) | Usa o template padrão do idioma da mensagem; se esse idioma não tiver um, usa o padrão de **Padrão (todos os idiomas)** |
| Nenhum | O e-mail sai sem header (ou sem rodapé) |
| Escolher template… | Usa o template escolhido na lista |

No mesmo lugar, o campo **Design system** define qual [design system](https://docs.octasend.com.br/plataforma/design-system.md) o corpo segue: **Padrão do tenant**, **Nenhum** ou um design system escolhido. No **Builder**, o corpo usa as cores e fontes da marca e também a seção **E-mail** do design system: largura, cor de fundo do e-mail, cor de fundo do conteúdo e cor dos links. Um valor definido nas **Configurações do e-mail** do próprio template vale por cima do design system; apague o valor do campo para voltar a seguir o design system. Templates criados antes disso mantêm os valores que já tinham.

## 3. Criar o corpo do e-mail

Cada comunicação tem seu próprio editor de e-mail: **Texto simples** ou **Builder** (visual), com a opção **Importar do Claude Design**. O corpo é montado dentro do header e do rodapé escolhidos e aceita variáveis `{{var}}` em qualquer campo de texto. Veja [Comunicações](https://docs.octasend.com.br/plataforma/comunicacoes.md).

Logo abaixo do **Assunto** fica o campo **Preheader**: o texto de prévia que a caixa de entrada mostra ao lado do assunto. Ele aceita variáveis `{{var}}` e vale para e-mails com HTML.

* Se o HTML já trazia um preheader oculto (por exemplo, num layout importado), ele é trocado pelo texto do campo, para a prévia não sair duplicada.
* Blocos visíveis do e-mail não são alterados, mesmo que usem uma classe de preheader, como o "Ver no navegador" de layouts do Mailchimp.
* Com o campo vazio, o e-mail sai como está.

Para testar, use **Enviar teste** no editor: o e-mail vai para o **Destinatário de Teste** cadastrado em **Configurações → Geral**. O teste usa o rascunho salvo da versão, se houver; os envios reais usam só a versão publicada.

## 4. Enviar

```bash theme={null}
curl -X POST https://api.octasend.com.br/functions/v1/send-message \
  -H "Authorization: Bearer SEU_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "communication_slug": "boas-vindas",
    "recipient": { "email": "usuario@exemplo.com" },
    "variables": { "nome": "Ricardo" }
  }'
```

* `recipient.email` é obrigatório para o canal. Sem ele, o e-mail não é enviado; se você pediu o canal explicitamente em `channels`, o resultado vem como `skipped` com o campo que faltou.
* Se o canal não estiver configurado, o envio nem começa: o resultado vem como `skipped` com o erro `Canal não configurado`, e nada é registrado em **Logs**.

O access token vem do fluxo descrito em [Autenticação](https://docs.octasend.com.br/api-reference/autenticacao.md).

## 5. Entrega, aberturas e cliques

E-mails com HTML são rastreados automaticamente: um pixel invisível registra a **abertura** e os links `http` e `https` passam por um redirecionamento que registra o **clique** antes de levar ao destino. Os resultados aparecem no detalhe do envio, em [Logs de Mensagens](https://docs.octasend.com.br/plataforma/logs-de-mensagens.md), em três marcas, cada uma com a sua data:

| Marca | O que registra |
| - | - |
| **Entregue** | A entrega confirmada pelo SendGrid, com o webhook configurado. Quando o provedor não informa a entrega (Amazon SES, SMTP e SendPulse), é preenchida na primeira abertura ou no primeiro clique |
| **Aberto** | A primeira abertura. Aberturas seguintes não mudam a data |
| **Clicado** | O último clique. Um clique também registra a abertura |

Na API de [Consultar logs](https://docs.octasend.com.br/api-reference/consultar-logs.md), as três marcas estão nos campos `delivered_at`, `read_at` e `clicked_at`.

* Links `mailto:`, `tel:` e `sms:`, âncoras (`#secao`) e endereços relativos ficam como estão: abrem direto e não contam como clique.

Para não contar leituras que não foram de pessoas:

* Acessos nos primeiros **15 segundos** após o envio são ignorados — nesse intervalo, quem acessa costuma ser o verificador automático do servidor de e-mail, não uma pessoa.
* Acessos de scanners de segurança conhecidos (como os de proteção de links de e-mail corporativo) são ignorados. O cache de imagens de webmails como o Gmail conta como abertura, porque só busca o pixel quando a pessoa abre a mensagem. A abertura no Outlook para Windows também conta.

E-mails que saem só como texto — sem corpo em HTML, header nem rodapé — não têm esse rastreamento de abertura e clique. Com o SendGrid e o webhook configurado, entrega, abertura, clique e falhas também chegam pelos eventos do provedor.

## 6. Descadastro

O descadastro vale para os e-mails de marketing. Mensagens transacionais, sobre um pedido ou a conta do próprio contato, continuam chegando a quem se descadastrou.

Os e-mails de marketing saem com uma linha de descadastro no fim da mensagem: *"Não quer mais receber estes e-mails? Descadastre-se"*. Nas campanhas, a linha sai em português; nos demais, segue o idioma da mensagem (português, inglês ou espanhol). A linha também entra na versão em texto do e-mail.

| Origem do e-mail | Tipo | Linha de descadastro | Contato descadastrado do e-mail |
| - | - | - | - |
| [Campanhas](https://docs.octasend.com.br/plataforma/campanhas.md) | Marketing | Sim | Não recebe |
| [Automações](https://docs.octasend.com.br/plataforma/automacoes.md) com gatilho **Segmento de contatos**, **Data de um campo do contato** ou **Chamada de API** | Marketing | Sim | Não recebe |
| Carrinho abandonado, pela comunicação mapeada na integração da loja | Marketing | Sim | Não recebe |
| Automações com gatilho **Chegou um pedido** ou **Evento de uma loja** | Transacional | Não | Recebe |
| Demais eventos mapeados na integração da loja (pedido, cliente) | Transacional | Não | Recebe |
| API (`send-message` com o access token) | Transacional | Não | Recebe, a menos que a chamada envie `respect_opt_out: true` |

* O link abre uma página que pede confirmação. Só o clique em **Confirmar descadastro** descadastra a pessoa: abrir o link sozinho não muda nada, então antivírus e pré-visualizadores de link não descadastram ninguém.
* Pelo **SendGrid** e pelo **SMTP**, os e-mails de marketing também levam os cabeçalhos de descadastro em um clique (`List-Unsubscribe` e `List-Unsubscribe-Post`), usados por Gmail e Yahoo para mostrar a opção de cancelar a inscrição. Pelo **Amazon SES** e pela **SendPulse**, levam só a linha no rodapé.
* Quando um e-mail de marketing não sai porque o contato se descadastrou, o envio fica **Ignorada** no log, com o motivo *"Contato descadastrado"*. Veja o descadastro de cada contato em [Contatos](https://docs.octasend.com.br/plataforma/contatos.md).

> [!NOTE]
>
> E-mails enviados pela API (`send-message` com o access token) não levam a linha de descadastro, nem com `respect_opt_out: true`. Com `respect_opt_out: true`, o e-mail para um contato descadastrado não sai e volta com `status: "skipped"`. Se você usa a API para marketing, oferecer o descadastro é responsabilidade do seu sistema. Veja [Descadastro de contatos](https://docs.octasend.com.br/api-reference/enviar-mensagens.md#descadastro-de-contatos).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.