944 063 154

Blog

Enviar correo con gmail en php usando swift mailer 4

Publicado enDesarrollo web

Swift Mailer 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, Swift Mailer 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.

Al igual que muchos otros proyectos de código abierto, el desarrollo de Swift Mailer no hubiera sido posible sin la ayuda de la comunidad. Swift Mailer, 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.

Enviando emails 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);