Usar servidores de correo diferentes en Laravel

Es posible que en tu aplicación necesites enviar emails desde distintas plataformas. Por ejemplo, unos emails los puedes enviar con tu proveedor de correo actual y otros con Mandrillapp.

Pues es más fácil de lo que te esperas.

Vamos a ver un ejemplo con Mandrillapp y con Brevo (dos conocidos proveedores de email).

El primer paso es editar el fichero config/mail.php y añadir una entrada nueva para cada proveedor (mandrillapp y brevo):

'smtp' => [
    'transport' => 'smtp',
    'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
    'port' => env('MAIL_PORT', 587),
    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
    'username' => env('MAIL_USERNAME'),
    'password' => env('MAIL_PASSWORD'),
    'timeout' => null,
    'local_domain' => env('MAIL_EHLO_DOMAIN'),
],
'mandrillapp' => [
    'transport' => 'smtp',
    'host' => env('MANDRILL_HOST', 'smtp.mailgun.org'),
    'port' => env('MANDRILL_PORT', 587),
    'encryption' => env('MANDRILL_ENCRYPTION', 'tls'),
    'username' => env('MANDRILL_USERNAME'),
    'password' => env('MANDRILL_PASSWORD'),
],
'brevo' => [
    'transport' => 'smtp',
    'host' => env('BREVO_HOST', 'smtp.mailgun.org'),
    'port' => env('BREVO_PORT', 587),
    'encryption' => env('BREVO_ENCRYPTION', 'tls'),
    'username' => env('BREVO_USERNAME'),
    'password' => env('BREVO_PASSWORD'),
],

¡No olvides crear todas estas claves en tu .env!

Para enviar un email con Mandrillapp basta con hacer:

Mail::mailer('mandrillapp')->to($to)->send($mailable);

Donde:

  • $to – Será el destinatario del email.
  • $mailable – Será el mailable que has preparado para enviar.

Y, claro, para enviar con Brevo sería:

Mail::mailer('brevo')->to($to)->send($mailable);

¿Sabes lo que es el reto de PHP?

He creado el PHP Journey, una plataforma para que recibas de forma gratuita un email cada día con una pequeña perla de sabiduría de PHP y una pregunta que deberás responder.

Cada día pones a prueba tus conocimientos y aprendes algo nuevo.

Apúntate aquí:

https://urlantools.urlanheat.com/newsletter/php-journey/subscribe


Deja un comentario