# Elegir entre la API y SMTP

> Compara la API REST de Emailit con el SMTP relay función por función, desde las plantillas y la programación hasta la idempotencia y los webhooks, y elige la opción adecuada.

Emailit acepta emails transaccionales de dos formas: la API REST y el SMTP relay. Esta guía los compara para que puedas elegir uno, o usar los dos en el mismo espacio de trabajo.

## La respuesta corta

- **Usa la API** para el código nuevo. Hace más cosas: plantillas, programación, reintentos idempotentes, metadatos, configuración de seguimiento por email y una respuesta JSON con un ID para cada destinatario.
- **Usa SMTP** cuando el software que utilizas ya tiene configuración SMTP, como un CMS, el sistema de correo de un framework, una herramienta de soporte, un dispositivo o una aplicación heredada. Cambias cuatro ajustes y listo.

Los dos usan las mismas claves de API, los mismos dominios verificados, la misma lista de direcciones bloqueadas, los mismos límites de envío, los mismos registros y los mismos webhooks. Puedes cambiar más adelante sin tocar los DNS.

## Comparación de funciones

| Función | API REST | SMTP relay |
| --- | --- | --- |
| Endpoint | `POST https://api.emailit.com/v2/emails` | `smtp.emailit.com`, puertos 587, 465, 2525, 2587 y 25 |
| Autenticación | `Authorization: Bearer secret_…` | AUTH PLAIN o LOGIN, usuario `emailit`, contraseña = clave de API |
| Contenido | `html`, `text` o una plantilla guardada | Un mensaje MIME completo, que se envía tal cual |
| Plantillas y variables | `template` (ID o alias) más `variables`, renderizadas con [Temple](/es/docs/templates/temple/) | No disponible. Renderiza el mensaje antes de enviarlo. |
| Programación | `scheduled_at` en ISO 8601, como marca de tiempo Unix o en lenguaje natural en inglés, como `tomorrow at 9am` | No disponible. El email se pone en cola de inmediato. |
| Adjuntos | `content` en base64 o una `url` que Emailit descarga (hasta 25 MB cada uno). `content_id` convierte una imagen en imagen en línea. | Partes MIME estándar |
| Tamaño del mensaje | 40 MB | 40 MB |
| Destinatarios por mensaje | Hasta 50 en cada uno de `to`, `cc` y `bcc` | Sin límite fijo por transacción |
| Idempotencia | Cabecera `Idempotency-Key`, que se respeta durante 24 horas | No disponible. Una transacción reintentada puede enviarse dos veces. |
| Metadatos | Objeto `meta`, que se devuelve en los payloads de los webhooks | No disponible |
| Cabeceras personalizadas | Objeto `headers` | Cualquier cabecera del mensaje |
| Seguimiento de aperturas y clics | Por email con `tracking`, o el valor por defecto del dominio | Solo el valor por defecto del dominio |
| Webhooks `email.accepted` y `email.scheduled` | Sí | No. Los eventos posteriores, como `email.delivered` y `email.bounced`, funcionan igual. |
| ID de los emails | La respuesta tiene `id`, e `ids` con un ID por destinatario | Respuesta final `250 2.0.0 OK: queued as em_…` |
| Errores | Códigos de estado HTTP con un cuerpo JSON | Códigos de respuesta SMTP, por ejemplo `535` o `550` |
| Límites de envío | Compartidos por espacio de trabajo. `429` con las cabeceras `ratelimit-*` y `retry-after`. | Compartidos por espacio de trabajo. Respuestas `452`. |
| Créditos | 1 por destinatario | 1 por destinatario |
| Registro de peticiones | **Email API → Logs**, origen API | **Email API → Logs**, origen SMTP |

Una vez aceptado un email, los dos canales se comportan igual. Cada destinatario recibe un ID `em_`, aparece en **Email API → Emails** y se puede cancelar, reintentar o reenviar desde el panel o con la API.

## Cuándo usar la API

Elige la API cuando escribas tú el código de envío, sobre todo si necesitas algo de esto:

- **Plantillas.** Los diseñadores editan una plantilla en el panel y tu código la envía por alias con `variables`. Consulta [Plantillas](/es/docs/templates/).
- **Reintentos seguros.** Envía una `Idempotency-Key` con cada petición y reintenta cuando haya errores de red sin enviar dos veces. Consulta [Peticiones idempotentes](/es/docs/email-api/idempotency/).
- **Programación.** Envía un recordatorio para mañana por la mañana sin tu propia cola de tareas, y reprográmalo o cancélalo hasta 3 minutos antes de que salga. Consulta [Programar y cancelar emails](/es/docs/email-api/scheduling/).
- **Correlación.** Adjunta tus propios ID en `meta` y asocia los eventos de webhook con tus registros. Consulta [Cabeceras y metadatos](/es/docs/email-api/headers-and-metadata/).
- **Errores claros.** Un `422` por un dominio sin verificar o un `402` por falta de créditos es más fácil de gestionar que una cadena de respuesta SMTP.

## Cuándo usar SMTP

Elige SMTP cuando no puedas o no quieras cambiar código:

- **Software estándar** como WordPress, una herramienta de soporte o una herramienta de monitorización con una página de configuración SMTP.
- **Sistemas de correo de frameworks** que ya funcionan por SMTP, como Laravel, Rails, Django o Nodemailer. Puedes pasar a la API más adelante.
- **Migraciones rápidas** desde otro proveedor. Cambia el host, el puerto, el usuario y la contraseña, y haz pruebas.
- **Dispositivos y scripts** que solo usan SMTP, como impresoras, escáneres o tareas cron.

Lo que debes saber antes de depender de SMTP:

- Emailit no lee por SMTP las cabeceras específicas de otros proveedores. El seguimiento sigue la configuración **Track loads** y **Track clicks** del dominio de envío.
- Emailit sustituye tu cabecera `Message-ID` por la suya y elimina la cabecera `Reply-To` cuando es igual que `From`.
- Usa siempre TLS. Se recomienda el puerto 587 con STARTTLS, y el 465 usa TLS desde el primer byte. Consulta [Configuración SMTP](/es/docs/smtp/settings/).

## Usar los dos

Muchos equipos usan los dos: la API para los emails de la aplicación y SMTP para un CMS o herramientas internas. Usa una clave de API distinta para cada uno, para distinguirlos en los registros y poder regenerar una sin romper la otra. Una clave **Sending Only** limitada a un dominio es una buena opción para las credenciales SMTP guardadas en software de terceros. Consulta [Claves de API](/es/docs/developers/api-keys/).

## Próximos pasos

  - [Inicio rápido de la API](/es/docs/quickstart/api/): Envía tu primer email con cURL o con un SDK.
  - [Inicio rápido de SMTP](/es/docs/quickstart/smtp/): Prueba el relay con swaks, OpenSSL o Python.
  - [Enviar un email](/es/docs/email-api/send-email/): Todas las opciones del endpoint de envío.
  - [Configuración SMTP](/es/docs/smtp/settings/): Hosts, puertos, TLS y códigos de respuesta.

---
Fuente: https://emailit.com/es/docs/get-started/api-or-smtp/
