Enviando emails con el framework Laravel y Gmail

El envío de correos electrónicos desde cualquier aplicación web es algo crucial hoy en día. Por medio de este mecanismo se notifica al usuario cualquier tipo de actividad que se tenga con la web, desde enviar las claves de acceso a la plataforma hasta enviar un boletín con las últimas noticias publicadas.

A la hora de diseñar una aplicación en PHP, lo más fácil es hacer uso de la función “mail()” que nos permite hacer este tipo de envíos. En este tutorial, dejaremos de lado esta función y veremos cómo realizar este envío si estamos utilizando el framework de desarrollo Laravel 4.

La forma de enviar mails con Laravel es muy sencilla, ya que para ello hace uso de Swiftmailer. Lo primero que deberemos hacer será configurar el archivo “mail.php” que encontramos en la ruta “/app/config/mail.php”. Ahí le indicaremos los datos que utilizaremos para realizar el envío. En nuestro ejemplo, será una cuenta de Gmail.

Los distintos campos que nos encontraremos son:

- driver: El driver de correo que te gustaría utilizar. Por defecto es SMTP, pero se puede cambiar para que utilice otro.
- host: Se indica el servidor SMTP que utilizaremos.
- port: El puerto SMTP.
- from: Aquí indicamos la dirección de mail desde donde se hará el envío.
- encryption: Protocolo de encriptación que utilizaremos cada vez que se envíe un mail.
- username: Usuario SMTP.
- password: Contraseña SMTP, la del correo.
- sendmail: Aquí se indica el path donde podemos encontrar el Sendmail en el servidor. Se completa cuando utilicemos el driver Sendmail.
- pretend: Cuando su valor es true, los emails se registrarán en un log.

Como hemos dicho, nosotros utilizaremos una cuenta de Gmail para hacer el envío, por lo que nuestro archivo de configuración quedaría de la siguiente manera.


return array(
'driver' => 'smtp',
'host' => 'smtp.gmail.com',
'port' => 587,
'from' => array('address' => '[email protected] com', 'name' => 'Programación.com'),
'encryption' => 'tls',
'username' => 'nuestro_usuario_gmail',
'password' => 'nuestra_contraseña',
);


Una vez que tenemos configurado nuestro archivo, para realizar el envío del correo desde Laravel, tenemos que hacer uso de su método “Mail:send()”. A continuación os dejamos un pequeño ejemplo.


Mail::send('emails.template', $data, function ($message) use ($user){
$message->subject('Aquí va el mensaje del asunto del email ');
$message->to('[email protected]');
});


El primer parámetro que se le pasa a este método es el template que se va a utilizar como plantilla de email y que tendrá la estructura de una página HTML.

El segundo argumento ($data) corresponde con los datos que queremos enviar por correo electrónico y que son recibidos en la plantilla.

El tercer argumento es una función al que se le pasa un objeto $message que podemos utilizar para indicarle al usuario que le estamos enviando un correo y el asunto de este mail. Aquí se puede indicar otras opciones como archivos adjuntos,…

Como podéis ver, realizar un envío de mail desde Laravel es realmente sencillo y rápido.
COMPARTE ESTA NOTICIA

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +