Localizado por IA
Tutoriales • MARCH 3, 2026

Envío de Correos Electrónicos con PHP

Aprende a enviar correos electrónicos en PHP usando el SDK de Emailit para PHP. Desde mensajes sencillos hasta plantillas, archivos adjuntos y envío programado, todo con una API limpia y moderna.
Envío de Correos Electrónicos con PHP
Envío de Correos Electrónicos con PHP

Enviar correos electrónicos desde PHP tradicionalmente ha significado lidiar con mail(), configurar servidores SMTP o incluir dependencias pesadas. El SDK de Emailit para PHP te ofrece una alternativa limpia y moderna. Puedes enviar correos transaccionales, gestionar dominios, verificar direcciones y manejar webhooks, todo a través de un cliente API sencillo.

PHP sigue siendo uno de los lenguajes más utilizados para el desarrollo web, y el envío de correos electrónicos es un requisito fundamental para casi cualquier aplicación PHP. Ya sea que estés construyendo un producto SaaS, una tienda de comercio electrónico o un sistema de gestión de contenidos, la entrega confiable de correos es esencial para la incorporación de usuarios, restablecimiento de contraseñas, confirmaciones de pedidos y campañas de marketing. En lugar de depender de la función integrada mail() de PHP, que ofrece control limitado y ninguna garantía de entrega, usar una API de correo dedicada asegura que tus mensajes realmente lleguen a la bandeja de entrada.

En esta guía te mostraremos cómo instalar el SDK y usarlo para enviar correos desde cualquier aplicación PHP.

Requisitos

Instalación

Instala el SDK a través de Composer:

composer require emailit/emailit-php

El SDK de Emailit para PHP está disponible como un paquete de Composer, por lo que se integra perfectamente en cualquier proyecto PHP que use Composer para la gestión de dependencias. No necesitas incluir archivos manualmente ni usar cargadores automáticos personalizados.

Inicializar el cliente

Crea una instancia del cliente con tu clave API:

require 'vendor/autoload.php';

$emailit = Emailit::client('tu_clave_api');

Puedes encontrar tu clave API en el panel de Emailit bajo Claves API.

Enviar un correo básico

Enviar un correo requiere una sola llamada al método:

$email = $emailit->emails()->send([
    'from'    => 'hola@tudominio.com',
    'to'      => ['usuario@ejemplo.com'],
    'subject' => 'Hola desde Emailit',
    'html'    => '<h1>¡Bienvenido!</h1><p>Gracias por registrarte.</p>',
]);

echo $email->id;     // em_abc123...
echo $email->status; // pending

Todos los métodos del servicio devuelven objetos de recursos tipados con acceso directo a propiedades, para que siempas exactamente con qué estás trabajando.

Comparado con usar la función nativa mail() de PHP, enviar correos a través de una API te proporciona seguimiento de entrega, manejo de rebotes e información detallada del estado de cada mensaje. No tienes que preocuparte por configurar Sendmail o Postfix en tu servidor, y obtienes entrega confiable en todos los principales proveedores de correo como Gmail, Outlook y Yahoo.

Enviar con una plantilla

Si has creado una plantilla en el panel de Emailit, puedes referenciarla por su identificador y pasar variables:

$email = $emailit->emails()->send([
    'from'      => 'hola@tudominio.com',
    'to'        => 'usuario@ejemplo.com',
    'template'  => 'correo_bienvenida',
    'variables' => [
        'nombre'  => 'Juan Pérez',
        'empresa' => 'Acme Inc',
    ],
]);

Las plantillas mantienen el contenido de tus correos fuera de tu código base y permiten que personas no técnicas actualicen el texto sin necesidad de un despliegue. Esto es especialmente útil para correos transaccionales como mensajes de bienvenida, enlaces de restablecimiento de contraseña, recibos de facturas y notificaciones de envío, donde el diseño y la redacción cambian más frecuentemente que el código que los activa.

Enviar con archivos adjuntos

Adjunta archivos pasando contenido codificado en base64:

$email = $emailit->emails()->send([
    'from'        => 'facturas@tudominio.com',
    'to'          => 'cliente@ejemplo.com',
    'subject'     => 'Tu Factura #12345',
    'html'        => '<p>Adjuntamos tu factura.</p>',
    'attachments' => [
        [
            'filename'     => 'factura.pdf',
            'content'      => base64_encode(file_get_contents('factura.pdf')),
            'content_type' => 'application/pdf',
        ],
    ],
]);

Puedes adjuntar PDFs, imágenes, hojas de cálculo o cualquier otro tipo de archivo. Esto se usa comúnmente para enviar facturas, reportes o documentos generados directamente desde tu aplicación PHP sin requerir un enlace de descarga separado.

Programar un correo para más tarde

Pasa una marca de tiempo scheduled_at para enviar en una fecha futura:

$email = $emailit->emails()->send([
    'from'         => 'recordatorios@tudominio.com',
    'to'           => 'usuario@ejemplo.com',
    'subject'      => 'Recordatorio de Cita',
    'html'         => '<p>Tu cita es mañana a las 2 PM.</p>',
    'scheduled_at' => '2026-04-10T09:00:00Z',
]);

echo $email->status;       // scheduled
echo $email->scheduled_at; // 2026-04-10T09:00:00Z

Los correos programados pueden cancelarse antes de ser enviados:

$emailit->emails()->cancel('em_abc123');

La programación es útil para comunicaciones sensibles al tiempo como recordatorios de citas, avisos de renovación de suscripciones y campañas de goteo donde el momento del envío importa tanto como el contenido mismo.

Listar y gestionar correos enviados

Obtén una lista paginada de tus correos:

$emails = $emailit->emails()->list(['page' => 1, 'limit' => 10]);

foreach ($emails as $email) {
    echo $email->id . ' - ' . $email->status . "\n";
}

Reintentar un correo fallido:

$emailit->emails()->retry('em_abc123');

Tener visibilidad completa de tus correos enviados, su estado de entrega y la capacidad de reintentar fallos te da un nivel de control que la función mail() de PHP simplemente no puede proporcionar. Esto es crítico para aplicaciones donde cada correo importa, como recibos transaccionales, enlaces de verificación de cuenta y códigos de autenticación de dos factores.

Verificar direcciones de correo antes del envío

Reduce los rebotes verificando las direcciones por adelantado:

$result = $emailit->emailVerifications()->verify([
    'email' => 'test@ejemplo.com',
]);

echo $result->status; // valid
echo $result->score;  // 0.95
echo $result->risk;   // low

La verificación de correos electrónicos es una buena práctica para proteger tu reputación como remitente. Enviar a direcciones inválidas o desechables aumenta tu tasa de rebotes, lo que puede activar filtros de spam y perjudicar la entregabilidad en todo tu dominio. Al verificar direcciones antes del envío, mantienes bajas tus tasas de rebote y tu reputación intacta.

Manejar eventos de webhook

El SDK incluye clases de eventos tipadas y verificación de firmas para webhooks. Esto te permite reaccionar a eventos de entrega en tiempo real:

use Emailit\WebhookSignature;
use Emailit\Events\EmailDelivered;
use Emailit\Events\EmailBounced;

$event = WebhookSignature::verify(
    file_get_contents('php://input'),
    $_SERVER['HTTP_X_EMAILIT_SIGNATURE'],
    $_SERVER['HTTP_X_EMAILIT_TIMESTAMP'],
    'tu_secreto_de_firma_webhook'
);

match (true) {
    $event instanceof EmailDelivered => manejarEntregado($event),
    $event instanceof EmailBounced   => manejarRebote($event),
    default                          => log("No manejado: {$event->type}"),
};

Los webhooks permiten que tu aplicación PHP responda instantáneamente cuando un correo es entregado, rebotado, abierto o clicado. Esto es esencial para construir flujos de trabajo basados en eventos como actualizar un CRM cuando se entrega un mensaje, alertar a tu equipo de soporte sobre rebotes o rastrear métricas de participación para tus campañas de correo.

Manejo de errores

El SDK lanza excepciones tipadas para que puedas manejar cada caso de error con precisión:

use Emailit\Exceptions\AuthenticationException;
use Emailit\Exceptions\RateLimitException;
use Emailit\Exceptions\UnprocessableEntityException;
use Emailit\Exceptions\ApiErrorException;

try {
    $emailit->emails()->send([...]);
} catch (AuthenticationException $e) {
    // Clave API inválida (401)
} catch (RateLimitException $e) {
    // Demasiadas solicitudes (429)
} catch (UnprocessableEntityException $e) {
    // Validación fallida (422)
} catch (ApiErrorException $e) {
    // Cualquier otro error de API
    echo $e->getHttpStatus();
}

El manejo adecuado de errores asegura que tu aplicación se degrade elegantemente cuando algo sale mal. Las excepciones de límite de tasa, por ejemplo, pueden manejarse con una estrategia de reintento, mientras que los errores de autenticación deberían activar una alerta para que puedas rotar tu clave API.

Más allá de los correos

El SDK te da acceso a toda la API de Emailit, no solo al envío. Puedes gestionar dominios, claves API, audiencias, suscriptores, plantillas, supresiones, contactos y eventos, todo desde PHP:

$domain = $emailit->domains()->create(['name' => 'ejemplo.com']);
$contact = $emailit->contacts()->create(['email' => 'usuario@ejemplo.com']);
$templates = $emailit->templates()->list();

Esto hace del SDK de Emailit para PHP un conjunto completo de herramientas de infraestructura de correo. En lugar de usar bibliotecas o servicios separados para gestión de dominios, listas de contactos y envío de correos, puedes manejar todo a través de un solo cliente PHP consistente.

Comenzar

Instala el SDK y envía tu primer correo en menos de un minuto:

composer require emailit/emailit-php

Consulta la documentación completa del SDK en GitHub, o dirígete a la Referencia de API para detalles sobre cada endpoint.

Blog

Las últimas noticias y actualizaciones, directamente desde Emailit.

Mantente al día con los últimos artículos del Blog de Emailit.

Publicaciones Relacionadas

Las últimas novedades, tutoriales y actualizaciones del equipo de Emailit

Cambios en los Límites de Velocidad
Anuncios
8 min de lectura

Cambios en los Límites de Velocidad

Con la introducción de la API v2, hemos realizado algunos cambios en los límites de velocidad.

Oct 10, 2025
Nueva Documentación
Anuncios
10 min de lectura

Nueva Documentación

Un solo lugar para encontrar toda la información que necesitas para comenzar con Emailit.

Oct 12, 2025
API de Verificación de Email Ya Disponible
Anuncios
2 min de lectura

API de Verificación de Email Ya Disponible

Verifica direcciones de correo antes de enviar con nuestra nueva API de Verificación de Email. Reduce los rebotes y protege la reputación de tu remitente.

Feb 3, 2026