# Novas tentativas e encaminhamento de e-mails

> Reenvie como um novo e-mail um e-mail com bounce, com falha, suprimido ou retido, ou encaminhe um e-mail enviado para outro destinatário, pelo painel ou pela API.

A nova tentativa envia de novo um e-mail, com o mesmo conteúdo, depois que ele deu bounce, falhou, foi suprimido ou foi retido. O encaminhamento envia uma cópia de um e-mail que você já enviou para outra pessoa, por exemplo um colega do suporte ou um cliente que perdeu o original. Os dois criam um novo e-mail com o seu próprio ID e não alteram o original.

## Antes de começar

- Na API, os dois endpoints funcionam com chaves **Full Access** e **Sending Only**.
- Os dois são cobrados como novos envios, então você precisa de [créditos](/pt/docs/billing/credits/) suficientes.
- Os dois precisam do conteúdo da mensagem original. O Emailit o exclui quando termina o seu período de [retenção de dados](/pt/docs/data-retention/) para o conteúdo das mensagens:

| | Pay as you go | Pro | Business | Custom |
| --- | --- | --- | --- | --- |
| Retenção do conteúdo das mensagens | 7 dias | 30 dias | 30 dias | Flexível |

## Tentar enviar um e-mail de novo

É possível tentar enviar um e-mail de novo quando todas estas condições são verdadeiras:

| Requisito | Detalhes |
| --- | --- |
| Status | `bounced`, `failed`, `suppressed` ou `held` |
| Idade | Criado há menos de 30 dias |
| Conteúdo | O conteúdo da mensagem não foi excluído pela retenção de dados |
| Domínio de envio | O domínio de envio original ainda existe no workspace |

Uma nova tentativa cria um **novo e-mail**, com um novo ID `em_` e um novo Message-ID. Ela reutiliza a mensagem bruta, o destinatário, os metadados e as configurações de rastreamento do original e passa pelo processo normal de entrega. Ela custa 1 crédito, ou 2 créditos se o original era um e-mail de campanha. Um workspace no modo sandbox só pode tentar de novo e-mails endereçados a membros do workspace.

Corrija a causa antes de tentar de novo, senão o novo e-mail termina com o mesmo status:

- **Suppressed:** primeiro remova o endereço das [supressões](/pt/docs/suppressions/manage/).
- **Retido por falta de créditos:** recarregue os seus [créditos](/pt/docs/billing/credits/).
- **Retido porque o domínio foi pausado:** resolva o problema de [saúde de envio](/pt/docs/deliverability/sending-health/).
- **Retido pela pontuação de spam:** uma nova tentativa envia o mesmo conteúdo e provavelmente será retida de novo. Altere o conteúdo e envie um novo e-mail. Consulte [Verificação de spam](/pt/docs/deliverability/spam-checks/).
- **Bounced:** confira o motivo do bounce na página de detalhes do e-mail. Uma caixa de e-mail que não existe vai dar bounce de novo. Se o Emailit adicionou o endereço às suas supressões depois do bounce, remova-o primeiro.

**Painel**

  1. Acesse **Email API → Emails** e abra o e-mail.
  2. Selecione **Retry** no topo da página. O painel mostra essa opção em e-mails retidos e suprimidos; para e-mails com bounce ou com falha, use a API.
  3. Selecione **Retry** de novo na caixa de diálogo **Retry Email** para confirmar. O novo e-mail aparece na lista com o seu próprio ID.

**API**

  Chame [Tentar enviar um e-mail de novo](/pt/docs/api-reference/emails/retry/) (`POST /emails/{id}/retry`) com o ID do e-mail original. A requisição não tem corpo.

**cURL**

```bash
curl -X POST https://api.emailit.com/v2/emails/em_33VtK8mRq1xZp7LwN4cY2bHsDfa/retry \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
```

**Node.js**

```javascript
const retried = await emailit.emails.retry('em_33VtK8mRq1xZp7LwN4cY2bHsDfa');
```

**Python**

```python
retried = client.emails.retry("em_33VtK8mRq1xZp7LwN4cY2bHsDfa")
```

**PHP**

```php
$retried = $emailit->emails()->retry('em_33VtK8mRq1xZp7LwN4cY2bHsDfa');
```

```json
{
  "object": "email",
  "id": "em_33Vu2LqPz8aKd4WnX6cR1tYbHgs",
  "original_id": "em_33VtK8mRq1xZp7LwN4cY2bHsDfa",
  "token": "33Vu2LqQ7mFt3XcV9bNp5KsRwEz",
  "message_id": "<33Vu2LqQ7mFt3XcV9bNp5KsRwEz@acme.com>",
  "from": "Acme <orders@acme.com>",
  "to": "ada@example.com",
  "subject": "Receipt for order 1042",
  "status": "accepted",
  "created_at": "2026-10-01T11:15:03.552918Z",
  "message": "Email has been queued for retry"
}
```

| Erro | Causa |
| --- | --- |
| `404 Email not found` | O ID não existe neste workspace. |
| `422 Cannot retry email` | O status não permite nova tentativa, o e-mail tem mais de 30 dias, o conteúdo dele foi excluído ou o domínio de envio dele foi excluído. A `message` indica qual é o caso. |
| `402 Insufficient credits` | O workspace não consegue pagar pela nova tentativa. |
| `403 Workspace not verified` | O workspace está no modo sandbox e o destinatário não é membro do workspace. |

## Encaminhar um e-mail

O encaminhamento envia um e-mail de saída que você já enviou para um novo destinatário. E-mails recebidos (de entrada) não podem ser encaminhados.

Por padrão, o encaminhamento é um simples reenvio: o destinatário recebe o assunto, o corpo e os anexos originais como se o e-mail tivesse sido enviado para ele. Defina `include_headers` para enviar um encaminhamento clássico, com um bloco “Forwarded message” (From, Date, Subject e To originais) e um comentário opcional acima dele. O assunto passa então a começar com `Fwd:`.

- `to` (string | string[], obrigatório): Os novos destinatários, nos mesmos formatos de `to` em um envio.
- `include_headers` (boolean): Adiciona o bloco da mensagem encaminhada, o comentário opcional e o prefixo `Fwd:` no assunto.
- `comment` (string): Uma observação em texto simples mostrada acima da mensagem encaminhada quando `include_headers` é `true`. `body` é aceito como alias.
- `html` (string): Uma observação em HTML para usar no lugar do `comment` escapado na parte HTML, quando `include_headers` é `true`.
- `text` (string): Uma observação em texto simples que substitui `comment` na parte de texto, quando `include_headers` é `true`.
- `from` (string): Envia de outro endereço. O padrão é o endereço From original. Ele deve estar em um domínio de envio verificado.
- `subject` (string): Substitui o assunto. O padrão é o assunto original, ou `Fwd:` mais o assunto original com `include_headers`.

Um encaminhamento é um novo envio, então segue as mesmas regras de `POST /emails`: créditos por destinatário, limites de envio, as verificações do domínio do From e o cabeçalho [`Idempotency-Key`](/pt/docs/email-api/idempotency/) se aplicam. O rastreamento segue as configurações do domínio de envio. Os cabeçalhos personalizados e os metadados do original não são copiados, e os anexos só são mantidos se o tipo de arquivo deles for [permitido](/pt/docs/email-api/attachments/#allowed-file-types).

Cada workspace pode fazer **3 requisições de encaminhamento por hora**, somando os encaminhamentos feitos pelo painel e pela API. Acima do limite, a API retorna `429` com `too_many_requests`.

**Painel**

  1. Acesse **Email API → Emails** e abra o e-mail.
  2. Selecione **Forward**.
  3. Digite o destinatário em **To**.
  4. Opcional: marque **Add forwarded headers and a comment** e escreva um comentário em **Comment**.
  5. Selecione **Forward**. O novo e-mail aparece na lista com o seu próprio ID.

**API**

  Chame [Encaminhar um e-mail](/pt/docs/api-reference/emails/forward/) (`POST /emails/{id}/forward`).

**cURL**

```bash
curl https://api.emailit.com/v2/emails/em_33VtK8mRq1xZp7LwN4cY2bHsDfa/forward \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "support@acme.com",
    "include_headers": true,
    "comment": "Customer says this receipt never arrived. Can you check?"
  }'
```

**Node.js**

```javascript
const forwarded = await emailit.emails.forward('em_33VtK8mRq1xZp7LwN4cY2bHsDfa', {
  to: 'support@acme.com',
  include_headers: true,
  comment: 'Customer says this receipt never arrived. Can you check?',
});
```

**Python**

```python
forwarded = client.emails.forward("em_33VtK8mRq1xZp7LwN4cY2bHsDfa", {
    "to": "support@acme.com",
    "include_headers": True,
    "comment": "Customer says this receipt never arrived. Can you check?",
})
```

**PHP**

```php
$forwarded = $emailit->emails()->forward('em_33VtK8mRq1xZp7LwN4cY2bHsDfa', [
    'to' => 'support@acme.com',
    'include_headers' => true,
    'comment' => 'Customer says this receipt never arrived. Can you check?',
]);
```

A resposta é igual à [resposta de um envio](/pt/docs/email-api/send-email/#read-the-response), mais `original_id` e a mensagem “Email has been queued for forwarding”. O encaminhamento falha com `422 Cannot forward email` se o original for um e-mail recebido ou se o conteúdo dele tiver sido excluído.

## Veja também

- [Tentar enviar um e-mail de novo](/pt/docs/api-reference/emails/retry/)
- [Encaminhar um e-mail](/pt/docs/api-reference/emails/forward/)
- [Status de e-mail](/pt/docs/logs/email-statuses/)
- [Detalhes do e-mail](/pt/docs/logs/email-details/)

---
Fonte: https://emailit.com/pt/docs/email-api/retry-and-forward/
