# SMTP

> Em breve. O relay SMTP do Couryo, para enviar sem mudar o código. Servidor, portas, usuário, senha e exemplos para Laravel, Node e Supabase.

Fonte: https://couryo.com/docs/smtp

> **Em breve.** O relay SMTP ainda não está no ar: `smtp.couryo.com` não aceita conexões por enquanto. Hoje, envie pela [API REST](https://couryo.com/docs/sending.md), que já tem idempotência, lote e anexos. Esta página mostra como vai funcionar.

Para apps, frameworks e ferramentas que já enviam por SMTP, vai bastar trocar as credenciais.

## Credenciais

| Campo | Valor |
|---|---|
| Servidor | `smtp.couryo.com` |
| Porta | `587` (STARTTLS), `465` (TLS direto) ou `2525` (quando a 587 está bloqueada) |
| Usuário | `couryo` |
| Senha | a sua chave de API (`ck_live_...` ou `ck_test_...`) com escopo `send` |

O remetente precisa estar num [domínio verificado](https://couryo.com/docs/domains.md), como na API. Chaves `ck_test_` também funcionam por SMTP e capturam o e-mail sem entregar.

## Laravel

```ini title=".env"
MAIL_MAILER=smtp
MAIL_HOST=smtp.couryo.com
MAIL_PORT=587
MAIL_USERNAME=couryo
MAIL_PASSWORD=ck_live_...
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=oi@exemplo.com.br
MAIL_FROM_NAME="Exemplo"
```

## Node.js (Nodemailer)

```js title="Node.js"
import nodemailer from "nodemailer";

const transport = nodemailer.createTransport({
  host: "smtp.couryo.com",
  port: 587,
  secure: false, // STARTTLS
  auth: { user: "couryo", pass: process.env.COURYO_API_KEY },
});

await transport.sendMail({
  from: "Exemplo <oi@exemplo.com.br>",
  to: "ana@exemplo.com.br",
  subject: "Olá",
  text: "Enviado pelo Couryo via SMTP.",
});
```

## Supabase Auth e outras ferramentas

Em ferramentas com campo de "SMTP personalizado" (Supabase Auth, WordPress, n8n e afins), preencha servidor, porta, usuário e senha da tabela acima.

## API ou SMTP?

| | API | SMTP |
|---|---|---|
| Idempotência | sim, com `Idempotency-Key` | não |
| Resposta com o `id` da mensagem | sim | sim, na resposta do `DATA` |
| Lote de até 100 numa chamada | sim | não |
| Mudança no código | pequena | nenhuma |

Quando o SMTP estiver no ar, os dois caminhos vão gerar os mesmos eventos, aparecer na mesma linha do tempo e chamar os mesmos webhooks.
