Localizado por IA
Tutoriales • MARCH 4, 2026

Envío de Correos Electrónicos con Laravel

Aprende a enviar correos electrónicos en Laravel utilizando el paquete Emailit Laravel. Se integra como un transporte de correo nativo y te brinda acceso completo a la API de Emailit a través de un Facade.
Envío de Correos Electrónicos con Laravel
Envío de Correos Electrónicos con Laravel

Laravel incluye un excelente soporte de correo electrónico de fábrica, pero aún necesitas un servicio de entrega confiable detrás. El paquete Emailit Laravel se conecta directamente al sistema de correo de Laravel como un transporte nativo. Tus Mailables, Notificaciones y llamadas Mail::send() existentes funcionan sin ningún cambio de código. Además de eso, obtienes acceso completo a la API de Emailit a través de una Facade conveniente.

El envío de correos electrónicos es una de las tareas más comunes en cualquier aplicación Laravel. Confirmaciones de registro de usuarios, restablecimientos de contraseña, recibos de pedidos, actualizaciones de envío y boletines de marketing, todos dependen de una entrega confiable de correo electrónico. Aunque Laravel proporciona una poderosa capa de abstracción de correo, la entrega real aún depende del transporte que configures. Usar una API de correo electrónico como Emailit te brinda alta capacidad de entrega, seguimiento de entregas, gestión de rebotes y análisis detallados, sin tener que administrar servidores SMTP o preocuparte por la reputación de IP.

En esta guía te mostraremos cómo configurar Emailit en una aplicación Laravel y enviar correos electrónicos usando tanto el sistema de correo estándar de Laravel como la Facade de Emailit.

Requisitos

Instalación

Instala el paquete vía Composer:

composer require emailit/emailit-laravel

El paquete auto-descubre su proveedor de servicios, por lo que no se necesita registro manual. Funciona con Laravel 10, 11 y 12 de inmediato.

Configuración

Agrega tu clave API a .env:

EMAILIT_API_KEY=tu_clave_api

Establece Emailit como tu mailer predeterminado:

MAIL_MAILER=emailit

Agrega el mailer emailit al array de mailers en tu config/mail.php:

'mailers' => [
    // ...

    'emailit' => [
        'transport' => 'emailit',
    ],
],

Opcionalmente, publica el archivo de configuración para personalizar la URL base de la API:

php artisan vendor:publish --tag=emailit-config

La configuración es intencionalmente mínima. Una vez que estableces tu clave API y el mailer predeterminado, Laravel enrutará automáticamente todo el correo saliente a través de Emailit. No hay necesidad de configurar hosts SMTP, puertos, configuraciones de cifrado o credenciales de autenticación como lo harías con una configuración tradicional de servidor de correo.

Enviando correos con Laravel Mail

Una vez configurado, todas las funciones de correo de Laravel funcionan de inmediato. Nada en tu código existente necesita cambiar.

Usando un Mailable

Crea una clase Mailable como lo harías normalmente:

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;

class WelcomeEmail extends Mailable
{
    use Queueable, SerializesModels;

    public function __construct(
        public readonly User $user,
    ) {}

    public function envelope(): Envelope
    {
        return new Envelope(
            subject: 'Bienvenido a Nuestra App',
        );
    }

    public function content(): Content
    {
        return new Content(
            view: 'emails.welcome',
        );
    }
}

Luego envíalo:

use Illuminate\Support\Facades\Mail;
use App\Mail\WelcomeEmail;

Mail::to('usuario@ejemplo.com')->send(new WelcomeEmail($user));

El correo en cola, Mailables de Markdown y las Notificaciones funcionan exactamente como esperarías. Emailit se sitúa de manera transparente detrás de la capa de correo de Laravel, por lo que puedes intercambiarlo por cualquier transporte existente como SMTP, Mailgun o SES sin tocar el código de tu aplicación. Esto facilita probar Emailit junto a tu proveedor actual o migrar gradualmente.

Usando la Facade de Emailit

Para funciones que van más allá de lo que ofrece el sistema de correo de Laravel, como plantillas con variables, envíos programados o gestión de recursos de API, usa la Facade Emailit. Te da acceso directo al SDK completo de Emailit PHP.

Enviar un correo vía la API

use Emailit\Laravel\Facades\Emailit;

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

echo $email->id;
echo $email->status;

Enviar con una plantilla

Referencia plantillas que has construido en el panel de Emailit y pasa variables dinámicas:

use Emailit\Laravel\Facades\Emailit;

$email = Emailit::emails()->send([
    'from'      => 'hola@tudominio.com',
    'to'        => 'usuario@ejemplo.com',
    'template'  => 'email_bienvenida',
    'variables' => [
        'name'    => 'Juan Pérez',
        'company' => 'Acme Inc',
    ],
]);

Usar plantillas del lado del servidor es un patrón poderoso para aplicaciones Laravel. Tus diseñadores y especialistas en marketing pueden actualizar el contenido, estilo y diseño del correo electrónico en el panel de Emailit sin requerir cambios de código o nuevos despliegues. El código PHP solo necesita pasar los datos, y la plantilla maneja el renderizado.

Programar un correo

use Emailit\Laravel\Facades\Emailit;

$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',
]);

Los correos programados son manejados completamente por la API de Emailit, lo que significa que funcionan independientemente de tu sistema de colas de Laravel. Esto es ideal para recordatorios de citas, avisos de renovación de suscripciones y campañas sensibles al tiempo donde quieres entrega garantizada en un momento específico, incluso si tu servidor de aplicación experimenta tiempo de inactividad.

Enviar con archivos adjuntos

use Emailit\Laravel\Facades\Emailit;

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

Gestión de recursos

La Facade expone cada servicio de la API de Emailit, por lo que puedes gestionar toda tu infraestructura de correo electrónico desde Laravel.

Dominios

use Emailit\Laravel\Facades\Emailit;

$domain = Emailit::domains()->create([
    'name' => 'ejemplo.com',
    'track_loads' => true,
    'track_clicks' => true,
]);

$domain = Emailit::domains()->verify('sd_123');

Gestionar dominios de envío a través de la API es útil para plataformas SaaS que necesitan configurar dominios personalizados para cada cliente. Puedes automatizar todo el flujo de trabajo de verificación de dominio, incluyendo verificaciones de registros DNS, directamente desde tu aplicación Laravel.

Contactos

use Emailit\Laravel\Facades\Emailit;

$contact = Emailit::contacts()->create([
    'email' => 'usuario@ejemplo.com',
    'first_name' => 'Juan',
    'last_name' => 'Pérez',
]);

$contacts = Emailit::contacts()->list();

Verificación de correo electrónico

use Emailit\Laravel\Facades\Emailit;

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

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

Verificar direcciones de correo electrónico en el punto de registro o envío de formularios te ayuda a mantener una lista de contactos limpia y protege tu reputación como remitente. Altas tasas de rebote de direcciones inválidas pueden hacer que tus correos lleguen a carpetas de spam, por lo que la verificación es una mejor práctica para cualquier aplicación Laravel que envíe correos transaccionales o de marketing a escala.

Inyección de dependencias

Si prefieres no usar Facades, puedes inyectar el cliente directamente:

use Emailit\EmailitClient;

class EmailController extends Controller
{
    public function send(EmailitClient $emailit)
    {
        $email = $emailit->emails()->send([
            'from'    => 'hola@tudominio.com',
            'to'      => ['usuario@ejemplo.com'],
            'subject' => 'Hola',
            'html'    => '<p>¡Hola!</p>',
        ]);

        return response()->json(['id' => $email->id]);
    }
}

El contenedor de servicios de Laravel resuelve automáticamente la instancia EmailitClient con la clave API de tu configuración, por lo que obtienes la misma conveniencia que la Facade con los beneficios de capacidad de prueba de la inyección de dependencias.

Manejo de errores

El SDK de PHP subyacente lanza excepciones tipadas, por lo que puedes capturar tipos de error específicos:

use Emailit\Exceptions\AuthenticationException;
use Emailit\Exceptions\RateLimitException;
use Emailit\Exceptions\ApiErrorException;
use Emailit\Laravel\Facades\Emailit;

try {
    Emailit::emails()->send([...]);
} catch (AuthenticationException $e) {
    // Clave API inválida (401)
} catch (RateLimitException $e) {
    // Demasiadas solicitudes (429)
} catch (ApiErrorException $e) {
    // Cualquier otro error de API
    echo $e->getHttpStatus();
}

En una aplicación Laravel, también puedes manejar estas excepciones globalmente en tu manejador de excepciones o usar middleware para capturar errores de límite de tasa e implementar lógica de reintento automático. Esto asegura que tu aplicación se mantenga resistente incluso cuando envía grandes volúmenes de correo electrónico.

Todos los servicios disponibles

La Facade te da acceso a todo en la API de Emailit:

ServicioUsoDescripción
EmailsEmailit::emails()Enviar, listar, obtener, cancelar, reintentar correos
DomainsEmailit::domains()Crear, verificar, listar, gestionar dominios de envío
API KeysEmailit::apiKeys()Crear, listar, gestionar claves API
AudiencesEmailit::audiences()Crear, listar, gestionar audiencias
SubscribersEmailit::subscribers()Agregar, listar, gestionar suscriptores
TemplatesEmailit::templates()Crear, listar, publicar plantillas de correo
SuppressionsEmailit::suppressions()Crear, listar, gestionar direcciones suprimidas
Email VerificationsEmailit::emailVerifications()Verificar direcciones de correo electrónico
Email Verification ListsEmailit::emailVerificationLists()Verificación masiva de correo electrónico
WebhooksEmailit::webhooks()Crear, listar, gestionar webhooks
ContactsEmailit::contacts()Crear, listar, gestionar contactos
EventsEmailit::events()Listar y recuperar eventos

Comenzar

Instala el paquete y comienza a enviar en menos de un minuto:

composer require emailit/emailit-laravel

Revisa la documentación completa del paquete en GitHub, el SDK de Emailit PHP para el cliente subyacente, 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