944 063 154

Blog

Enviar correo con Gmail en PHP usando swift mailer 4

Publicado enDesarrollo y Programación

SwiftMailer es probablemente la mejor librería para enviar correos mediante smtp y sendmail que existe 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 recurriendo 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 en PHP a cualquier servidor SMTP. Por lo que puedes utilizarlo para enviar al 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 correos multimedia y consumir menos recursos.  En el caso de envío a gmail, además, podrás elegir el protocolo criptográfico: SSL o TLS.

SwiftMailer Gmail: enviando correo con SMTP

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; aquellas pequeñas porciones de código que aumentan la funcionalidad de nuestra librería. Plugins para la aplicación de correo Swift Mailer:

  • AntiFlood plugin: la mayoría de los servidores SMTP están limitados en cuanto a cantidad de envío de mensajes. Este complemento permite administrar una gran cantidad de emails manteniéndose dentro de esos límites.
  • Decorator plugin: ¿necesitas 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.
  • Logger plugin: su objetivo es identificar el porqué de que un servidor rechace direcciones o cualquier otro problema derivado del uso. En resumen, ayuda con la depuración en el proceso de envío.
  • Throttler plugin: a veces, el servidor SMTP tiene restricciones que limitan la velocidad en el envío de correos. Throttler consigue ejecutar Swift Mailer a una velocidad limitada.

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.