944 063 154

Enviar correo con Gmail en PHP usando Swift Mailer 4

Publicado enDesarrollo y Programación

SwiftMailer es probablemente una de las mejores librerías para enviar correos mediante SMTP y sendmail que existe en estos momentos para PHP. Escrita en 2005 por Fabien Potencier, CEO de Sensio Labs y Lead developer del framework Symfony para PHP, inicialmente, SwiftMailer formaba parte de un proyecto académico. Un desarrollo que posibilitaba el envío de correos electrónicos al recurrir al protocolo SMTP (Simple Mail Transfer Protocol). Desde entonces, la librería ha estado en continua evolución, hasta llegar a convertirse en la biblioteca de complementos que conocemos en la actualidad.

Características de SwiftMailer

Al igual que muchos otros proyectos de código abierto, el desarrollo de SwiftMailer no hubiera sido posible sin la ayuda de la comunidad. SwiftMailer, además, permite enviar correos electrónicos directamente desde tu aplicación programada en PHP a cualquier servidor SMTP. Por lo que puedes utilizarlo también con el servicio de correo de Google: Gmail. Entre sus principales ventajas se encuentran su facilidad de configuración o la potencia de la librería. Usando esta librería, podrás enviar todo tipo de correos multimedia sin consumir recursos en tu servidor.  En el caso de envío a Gmail, además, podrás elegir el protocolo criptográfico que prefieras: SSL o TLS.

Enviando correos con SMTP en Gmail

El siguiente código nos permite enviar correo usando el servidor SMTP de Gmail con esta herramienta:


 $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com',
                                               465,
                                               'ssl')
             >setUsername('usuario@gmail.com')
             >setPassword('tu contraseña');

 //Creamos el mailer pasándole el transport con la configuración de gmail
 $mailer = Swift_Mailer::newInstance($transport);

 //Creamos el mensaje
 $message = Swift_Message::newInstance($subject)
             >setFrom(array('tuemail@blackslot.gov' >'Blackslot'))
             >setTo($to_addresses)
             >setBody($body);

 //Enviamos
 $result = $mailer->send($message);

No podíamos terminar este artículo sin mencionar algún que otro plugin. Como bien sabes, un plugin es una pequeña porción de código que ayudar a aumentar las funcionalidades de las librerías. En este caso, destacamos los siguientes plugins para la aplicación de correo SwiftMailer:

  • AntiFlood plugin. La mayoría de los servidores SMTP están limitados en cuanto a cantidad de envío de mensajes, principalmente para evitar el envío de spam en caso de hackeo. Este complemento permite administrar una gran cantidad de emails manteniéndose dentro de esos límites.
  • Decorator plugin. ¿Nnecesitas enviar el mismo mensaje a múltiples destinatarios con ligeras variaciones en el cuerpo del mensaje? Decorator es la solución para permitir esas sutiles diferencias. Un plugin que te permitirá personalizar tus mensajes sin invertir demasiado tiempo en ello.
  • Logger plugin. El objetivo de este plugin es identificar el motivo de que un servidor rechace direcciones o cualquier otro problema derivado del uso. En resumen, es de gran ayuda con la depuración en el proceso de envío de los mensajes.
  • Throttler plugin. A veces, el servidor SMTP tiene restricciones que limitan la velocidad en el envío de correos. Throttler consigue ejecutar SwiftMailer a una velocidad limitada, de forma que tus mensajes puedan sortear dichas restricciones.

Y, ¿si existen errores en el envío de emails? Consulta nuestro artículo para saber más acerca de los errores SMTP más habituales.