GlosarioArquitectura

¿Qué es Mail?

El sistema Mail de Laravel proporciona una API limpia para enviar correos electronicos usando drivers como SMTP, Mailgun, Postmark o Amazon SES, con soporte para plantillas Blade, adjuntos y colas.

Mail (Correo electronico)

Laravel ofrece una API limpia y expresiva para enviar correos electronicos, con soporte para multiples drivers y plantillas personalizables.

Crear un Mailable

php artisan make:mail WelcomeMail --markdown=emails.welcome
class WelcomeMail extends Mailable
{
    use Queueable, SerializesModels;

    public function __construct(
        public User $user
    ) {}

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

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

    public function attachments(): array
    {
        return [
            Attachment::fromPath('/path/to/guia.pdf')
                ->as('guia-inicio.pdf')
                ->withMime('application/pdf'),
        ];
    }
}

Enviar correos

// Envio sincrono
Mail::to($user)->send(new WelcomeMail($user));

// Envio en cola (recomendado)
Mail::to($user)->queue(new WelcomeMail($user));

// Con CC y BCC
Mail::to($user)
    ->cc('admin@example.com')
    ->bcc('logs@example.com')
    ->send(new WelcomeMail($user));

Laravel incluye un renderizador de previsualizacion para probar los correos en el navegador con return new WelcomeMail($user) en una ruta. Tambien soporta Mailpit para desarrollo local.