Para desarrolladores

Email API-first: qué proveedor elegir si tu producto envía desde código

Por Mara Levin · Actualizado el 7 de octubre de 2026 · Precios comprobados en las páginas de cada proveedor ese mismo día.

La respuesta corta

Si escribes TypeScript y tus plantillas están en React, empieza por Resend: su plan gratuito admite 3.000 correos al mes y el de pago cuesta $20 por 50.000. Si lo que te preocupa es que los correos transaccionales lleguen siempre y quedan aislados de todo lo demás, mira Postmark. Si envías mucho y ya vives en AWS, Amazon SES sale a $0,16 por cada 1.000 correos. Mailgun y SendGrid compensan cuando necesitas más superficie de API, como rutas, validación de direcciones o subusuarios.

Esta guía deja fuera las plataformas de marketing con automatizaciones visuales. Para eso están las páginas de automatización de marketing y correo transaccional.

Comparativa de un vistazo

Todos los precios son los publicados en la página de precios de cada proveedor el 7 de octubre de 2026. Los límites diarios del plan gratuito importan más de lo que parece: con 100 correos al día no puedes ni siquiera hacer un envío de prueba a toda tu base de beta testers.

Servicio Plan gratuito Primer plan de pago Verificación de webhooks
Resend 3.000 al mes, 100 al día, 3 dominios Pro: $20 al mes por 50.000 Firma Svix; método de verificación en el SDK
Postmark 100 al mes, sin excedente Basic: $15 al mes desde 10.000 Autenticación básica HTTP y lista de IP
Mailgun 100 al día, 1 dominio Basic: $15 al mes por 10.000 Configurable por evento y dominio
Amazon SES Plan gratuito durante 6 meses desde el alta Essentials: $0,16 por 1.000 Eventos mediante SNS
SendGrid Prueba de 60 días, 100 al día Essentials desde $19,95 (50.000 a 100.000) Event Webhook hacia uno o varios endpoints
SMTP2GO 1.000 al mes, 200 al día Starter: $15 al mes por 10.000 Webhooks para entrega, rebote y clics
Mailjet 6.000 al mes, 200 al día Essential: $19 al mes por 15.000 Webhooks de envío, apertura y rebote

Cuánto pagas realmente a tres volúmenes

El precio de entrada engaña porque cada proveedor cobra el excedente de forma distinta. Estas cuentas usan las cifras publicadas de cada plan y no incluyen impuestos ni complementos como IP dedicada.

  • 10.000 correos al mes. Postmark Basic, Mailgun Basic y SMTP2GO Starter cuestan $15 cada uno. Resend Pro son $20 y trae 50.000 incluidos. SES Essentials sale a 10 × $0,16 = $1,60.
  • 50.000 correos al mes. Resend Pro: $20. Mailgun Foundation: $35. SES: 50 × $0,16 = $8. Aquí Postmark deja de ser barato: el control deslizante de su página de precios marcaba el 7 de octubre de 2026 $55 en Basic, $60,50 en Pro y $66 en Platform. SMTP2GO queda en $15 + 40 × $1,20 = $63.
  • 100.000 correos al mes. SES: 100 × $0,16 = $16. Resend Pro marca $35 en el control deslizante de su página de precios, frente a $90 del plan Scale. Mailgun Scale cuesta $90 y SendGrid Pro parte de $89,95. El control deslizante de Postmark no tiene un punto en 100.000 (el más cercano, 125.000, marcaba $115 en Basic), así que consulta tu volumen en su página en lugar de calcularlo con el excedente.

La lectura útil es que a bajo volumen casi todo cuesta lo mismo y la decisión es de ergonomía, mientras que pasados los 50.000 mensuales SES y Resend se separan claramente de los proveedores que cobran el excedente a más de un dólar por mil.

Enviar con Resend y React Email: un ejemplo que sigue la documentación

Resend recomienda guardar la clave en una variable de entorno y pasar el componente de plantilla en el parámetro react. La plantilla usa los componentes de React Email tal como los presenta su guía de instalación manual; el envío sigue la guía de Resend para Next.js.

// emails/bienvenida.tsx
import { Button, Html, Head, Body } from "react-email";
import * as React from "react";

export function Bienvenida({ nombre }: { nombre: string }) {
  return (
    <Html>
      <Head />
      <Body>
        <h1>Hola, {nombre}</h1>
        <Button
          href="https://example.com/empezar"
          style={{ background: "#000", color: "#fff", padding: "12px 20px" }}
        >
          Empezar
        </Button>
      </Body>
    </Html>
  );
}

// enviar.ts
import { Resend } from "resend";
import { Bienvenida } from "./emails/bienvenida";

const resend = new Resend(process.env.RESEND_API_KEY);

const { data, error } = await resend.emails.send({
  from: "Acme <onboarding@resend.dev>",
  to: ["delivered@resend.dev"],
  subject: "Te damos la bienvenida",
  react: Bienvenida({ nombre: "Lucía" }),
});

if (error) console.error({ error });

Fíjate en que el remitente y el destinatario son las direcciones de prueba de resend.dev que usa la propia documentación. Antes de enviar a clientes reales tendrás que verificar tu dominio. Si no usas React, la misma llamada acepta el parámetro html con una cadena ya generada, que es justo lo que produce un compilador como MJML.

Webhooks: lo que cambia de un proveedor a otro

Un handler de webhooks de producción hace tres cosas: autentica la petición, responde rápido con un 200 y procesa el evento después, de forma idempotente, porque los reintentos significan que recibirás duplicados. Lo primero es lo que más varía.

  • Resend firma con Svix y exige verificar contra el cuerpo en bruto. Si tu framework parsea el JSON y lo vuelve a serializar, la firma deja de coincidir. Es el error más habitual, y su guía de verificación lo advierte expresamente.
  • Postmark no firma los webhooks. Según su documentación de webhooks, la protección recomendada es la autenticación HTTP básica más la lista de IP permitidas. Copiar un ejemplo con HMAC pensado para otro proveedor no te protege aquí.
  • Amazon SES publica los eventos en temas de SNS, que a su vez llaman a tu endpoint, a una función Lambda o a una cola. Es más piezas, pero encaja si ya lo gestionas todo en AWS.

Qué elegir según tu situación

Producto en Next.js o React con plantillas en el repositorio

Resend. La plantilla es un componente con tipos, el envío es una llamada y los dos viven en el mismo pull request. Cuando el volumen suba, el plan Pro con excedente a $0,90 por mil te da margen antes de plantearte otro proveedor.

Correo transaccional crítico: recibos, accesos, alertas

Postmark, con el matiz de que sale bastante más caro al subir de volumen ($55 frente a $20 de Resend a 50.000 correos). Si prevés superar con frecuencia los 10.000 mensuales, lee tu volumen en el control deslizante de su página de precios. Lo que sí ofrece es un entorno de pruebas y streams separados para que un envío masivo no contamine la reputación del tráfico transaccional.

Mucho volumen y equipo con experiencia en AWS

Amazon SES. Asume que serás tú quien monte la gestión de rebotes y quejas y que el soporte es el de AWS, no el de un equipo de producto. A cambio, la factura de 100.000 correos son $16.

Necesitas más de lo básico: rutas, validación, subcuentas

Mailgun o SendGrid. Mailgun ofrece plan gratuito de 100 correos diarios y planes desde $15; SendGrid añade las líneas de Marketing Campaigns con un plan gratuito de hasta 2.000 contactos si algún día mezclas transaccional y campañas.

Todavía envías por SMTP y quieres migrar poco a poco

SMTP2GO permite empezar cambiando solo las credenciales SMTP y pasar a la API cuando te convenga, con 1.000 correos gratis al mes para probar el flujo.

Cuatro comprobaciones antes de comprometerte

  1. Envía desde tu dominio real en la primera semana. Un proveedor puede funcionar perfecto con su dominio de pruebas y fallar al verificar tus registros DNS.
  2. Provoca un rebote y una queja a propósito y comprueba que tu aplicación los recibe y deja de escribir a esa dirección.
  3. Guarda el identificador de mensaje que devuelve la API junto al registro del usuario. Cuando soporte te pregunte qué pasó con un correo concreto, lo necesitarás.
  4. Aísla el proveedor detrás de una función tuya. Si cambiar de servicio es tocar un archivo, la decisión de hoy no te ata.

Qué mirar en las plantillas

La API resuelve el transporte, pero la plantilla sigue siendo HTML para clientes de correo difíciles. Si prefieres un marcado más cerca del correo que de React, compara MJML y React Email, y si necesitas que marketing edite sin pasar por código, repasa la guía de constructores de HTML. Para el flujo completo desde el código hasta la bandeja de entrada, el resumen de herramientas para desarrolladores amplía lo que aquí queda fuera.

Preguntas frecuentes

¿Qué significa que un servicio de email sea API-first?

Que todo lo importante se puede hacer con una petición HTTP: enviar, consultar el estado de un mensaje, gestionar dominios y recibir eventos por webhook. El panel web es un extra, no la vía principal. En la práctica significa que puedes versionar tu configuración, probar el envío en CI y no depender de que alguien pulse botones en un dashboard.

¿Resend o Postmark para una aplicación pequeña?

Si tus plantillas ya viven en React, Resend es la opción más cómoda porque acepta un componente directamente en la llamada de envío. Si lo que envías son recibos, restablecimientos de contraseña e invitaciones y quieres separar ese tráfico de cualquier envío promocional, el modelo de streams de Postmark está pensado para eso. A 10.000 correos al mes el precio de entrada de Postmark es de $15 y el de Resend ofrece 50.000 por $20, así que el coste rara vez decide.

¿Cómo compruebo que un webhook viene realmente del proveedor?

Depende del proveedor y conviene leer su documentación. Resend firma los eventos con Svix y su SDK trae un método para verificar la firma sobre el cuerpo sin modificar. Postmark no firma sus webhooks: recomienda proteger la URL con autenticación HTTP básica y permitir solo sus rangos de IP. Con SES los eventos llegan a través de SNS, que tiene su propio mecanismo de verificación.

¿Merece la pena Amazon SES si soy un equipo de dos personas?

Solo si ya trabajas dentro de AWS o tu volumen es alto. A $0,16 por cada 1.000 correos es la opción más barata por mensaje, pero te toca configurar la identidad del dominio, los eventos en SNS y el tratamiento de rebotes. Si ese trabajo te cuesta más de una tarde cada trimestre, la diferencia de precio con Resend o Mailgun se evapora.

¿Puedo probar el envío sin mandar correos de verdad?

Sí. Resend publica direcciones de prueba en el dominio resend.dev que simulan entregas y rebotes sin dañar la reputación de tu dominio, y Postmark tiene un modo sandbox para servidores. Para desarrollo local también sirve un servidor SMTP de captura como Mailpit, que no depende de ningún proveedor.