ESEN
Usamos solo cookies esenciales para que el sitio funcione (sesión, idioma y tema). No usamos cookies de rastreo ni de publicidad. Política de cookies Entendido
Tutorial · 8 min de lectura

Cómo enviar email transaccional en PHP (guía 2026)

Enviar un correo desde PHP es fácil. Que ese correo llegue a la bandeja de entrada y no a spam es lo difícil. Esta guía te lleva del enfoque antiguo (mail()) a la forma correcta en 2026.

El problema de mail() y SMTP casero

La función mail() de PHP entrega el mensaje al servidor local y se desentiende. No firma con DKIM, no alinea SPF, no gestiona rebotes ni quejas, y en hostings compartidos el puerto 25 suele estar bloqueado. Resultado: tus correos de registro y recuperación de contraseña no llegan, y ni te enteras.

Montar tu propio servidor SMTP tampoco resuelve el problema de fondo: la reputación de IP. Una IP nueva o compartida sin historial va directa a la carpeta de spam de Gmail y Outlook.

La forma correcta: una API de email transaccional

Un proveedor de email transaccional se encarga de la reputación, la firma DKIM, la supresión de rebotes y el seguimiento de entregas. Tú solo haces una llamada HTTP. Con una API como la de Zend24 el envío queda así:

// Enviar un email con cURL (sin dependencias)
$ch = curl_init("https://zend24.com/api/v1/emails");
curl_setopt_array($ch, [
  CURLOPT_POST           => true,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER     => [
    "Authorization: Bearer sk_live_TU_API_KEY",
    "Content-Type: application/json",
  ],
  CURLOPT_POSTFIELDS => json_encode([
    "from"    => "Facturación <facturas@tudominio.com>",
    "to"      => "cliente@ejemplo.com",
    "subject" => "Tu factura de octubre",
    "html"    => "<h1>Gracias por tu compra</h1>",
  ]),
]);
$res = json_decode(curl_exec($ch), true);
echo $res["id"]; // 01J2ZK7QW9...

Sin librerías, sin Composer, sin configurar SMTP. La respuesta incluye un id con el que puedes consultar el estado (entregado, rebotado, abierto) o recibir webhooks firmados en tiempo real.

Paso a paso

  1. Verifica tu dominio. Añades unos registros DNS (DKIM, SPF, DMARC) una sola vez. Con Zend24 puedes conectar Cloudflare, OVH o GoDaddy y se crean solos.
  2. Crea una API key. Usa sk_test_ para desarrollar sin enviar nada real, y sk_live_ en producción.
  3. Envía. Una petición POST a /api/v1/emails como la de arriba.
  4. Escucha eventos. Configura un webhook para reaccionar a rebotes y quejas, y limpiar tu lista.

Plantillas y variables

No metas el HTML en el código. Guarda la plantilla una vez y envía solo las variables:

{
  "from": "App <noreply@tudominio.com>",
  "to": "ana@ejemplo.com",
  "template": "bienvenida",
  "variables": { "nombre": "Ana" }
}

El escapado de variables es automático para evitar inyección de HTML.

Checklist de entregabilidad

  • Dominio verificado con DKIM y SPF alineados.
  • Registro DMARC publicado (empieza con p=none y sube a quarantine).
  • Un From: de tu propio dominio, nunca @gmail.com.
  • Cabecera List-Unsubscribe cuando aplique.
  • Gestión de rebotes y supresión automática.

Si quieres entender el porqué de DKIM, SPF y DMARC, lee nuestra guía sobre autenticación de email.

Zend24 es una API de email transaccional con infraestructura europea, DKIM automático y 3.000 emails gratis al mes. Crea tu cuenta gratis y envía tu primer correo en 10 segundos.

Preguntas frecuentes

¿Puedo usar la función mail() de PHP en producción?

No es recomendable. mail() no firma con DKIM, no gestiona rebotes ni reintentos y suele acabar en spam o bloqueada por el proveedor de hosting. Para producción usa una API o SMTP autenticado de un proveedor con buena reputación.

¿Qué diferencia hay entre email transaccional y de marketing?

El transaccional lo dispara una acción del usuario (registro, factura, recuperación de contraseña) y va a una persona. El de marketing es masivo y promocional. Se envían por rutas y reputaciones distintas: mézclarlos daña la entregabilidad de los importantes.

Seguir leyendo

DKIM, SPF y DMARC explicados (sin tecnicismos)

Los tres registros DNS que deciden si tu correo llega o acaba en spam. Qué hace cada uno, cómo se configuran y cómo comprobarlos.

Por qué tus emails caen en spam (y cómo evitarlo)

Las 8 causas reales por las que tus correos transaccionales acaban en spam, ordenadas por impacto, con la solución de cada una.