```theme
inherit
chrome: app
anchors: hover
page_width: 900
```

```meta
title: Documentação — Relay
description: Mande o primeiro e-mail em cinco minutos: a chave, o domínio e a chamada.
```

# Documentação

Esta página herda as cores e as fontes do Relay com `inherit`, mas volta a ser uma página de documentação: `chrome: app` mostra o caminho de páginas no topo, e `anchors: hover` devolve o link ao lado de cada título, para quem quer mandar um trecho a alguém.

## 1. Crie a chave {#chave}

No painel, em **Chaves**, crie uma chave com permissão de envio. Ela aparece uma vez só.

```@copy label:"No seu terminal" kind:code
export RELAY_KEY="re_live_..."
```

## 2. Verifique o domínio {#dominio}

Adicione os três registros que o painel mostra ao DNS do seu domínio:

| Tipo | Nome | Valor |
|---|---|---|
| TXT | `@` | `v=spf1 include:relay.exemplo ~all` |
| CNAME | `relay._domainkey` | `dkim.relay.exemplo` |
| TXT | `_dmarc` | `v=DMARC1; p=none` |

A verificação costuma levar menos de cinco minutos.

## 3. Mande o e-mail {#enviar}

```ts
await relay.emails.send({
  from: "Ana <ana@acme.dev>",
  to: "cliente@example.com",
  subject: "Seu pedido saiu",
  markdown: "# Chegou a hora\nO pedido **#4821** está a caminho.",
});
```

## Como um envio anda

```mermaid
sequenceDiagram
  participant App as Seu app
  participant API as Relay
  participant MX as Caixa do cliente
  App->>API: POST /emails
  API-->>App: 202 id
  API->>MX: SMTP
  MX-->>API: 250 aceito
  API-->>App: webhook email.delivered
```

## Três registros para não confundir

Quem configura um domínio pela primeira vez troca os três. Vire cada cartão até saber de cor.

```@flashcards label:"DNS do envio"
SPF | Diz quais servidores podem enviar e-mail em nome do domínio.
DKIM | Assina cada mensagem; o destinatário confere a assinatura no DNS.
DMARC | Diz o que fazer quando SPF ou DKIM falham: nada, quarentena ou rejeitar.
Reverse DNS | O IP de envio resolve de volta para um nome que aponta para ele.
```

## Antes de ir para produção

```@checklist title:"Lista de lançamento"
- [ ] Domínio verificado
- [ ] Webhook assinado e testado
- [ ] Chave de teste fora do código de produção
- [ ] Endereço de resposta que alguém lê
```

[Voltar ao Relay](../)
