Envio de Correo con PHP Swiftmailer

En el artículo Enviar Correo con PHP hablamos de la función mail() que es relativamente muy sencilla de configurar y aplicar pero a la larga se convierte en un verdadero reto lograr armar mensajes de correo con contenidos dinámicos además de que no es muy aconsejado usarla para sistemas que envían correo recurrentemente por ejemplo en proyectos de desarrollo web como el Sistema de Registro FENAMM se emite un mensaje de correo por cada participante que concluye la solicitud de inscripción. Como se menciona en este proyecto se utiliza Silex el cual se integra de forma nativa con PHP swiftmailer.

Librería PHP Swiftmailer

PHP Swiftmailer es una librería basada en componentes para enviar correo desde proyectos de desarrollo web. Actualmente el mantenimiento de esta potente clase la tiene Fabien Potencier creador de Symfony y Silex dos frameworks PHP bastante potentes.

Requerimientos del sistema

La librería PHP Swiftmailer está diseñada para trabajar con el mayor número de proyectos escritos en PHP 5.

  • PHP 5.2 o superior con extensión SPL
  • Acceso para conexión con servidores SMTP remotos
  • 8 MB de memoria o más, por lo general utiliza 2MB

Información General

PHP SwiftMailer ofrece características avanzadas por ejemplo los medios de transporte no se limitan a SMTP, permite utilizar

  • Swift_SendmailTransport
    • Para establecer comunicación con sendmail de forma local en servidores Linux/Unix
  • Swift_MailTransport
    • Utilizar la función mail() de PHP (no se recomienda su uso es muy inestable)
  • Swift_LoadBalancedTransport
    • Utiliza los demás transportes para gestionar la carga de envío.
  • Swift_FailoverTransport
    • Trabaja en conjunto con los otros medios de transporte para proveer alta disponibilidad

Cuenta con un manejo avanzado de las Entidades MIME (MIME Entity), además maneja Codificadores para asegurar que los mensajes enviados a través de internet contengan un formato seguro y acordes a las especificaciones RFC. También cuenta con 3 plugins bastante interesantes que en determinado momento se pueden implementar con la librería.

PHP Swiftmailer permite entre otras cosas adjuntar archivos, insertar archivos en el cuerpo del mensaje y prácticamente la mayoría de las funciones que realizamos en un cliente de correo electrónico.

Ejemplo PHP Swiftmailer

En esté código de ejemplo configuraremos un mensaje para Envío de Correo con PHP Swiftmailer, en primer lugar definiremos las variables de configuración del servidor que utilizaremos en el método Swift_SmtpTransport

Ahora definimos las variables propias del mensaje y cabeceras de envío

Lo que nos resta es instanciar el método de transporte y enviar el mensaje de Correo con PHP Swiftmailer

En conclusión PHP Swiftmailer es un excelente recurso para realizar envío de correo electrónico desde nuestros proyectos PHP. Es importante destacar que se deben tener conocimientos de programación orientada a objetos y conocer términos sobre protocolos de correo electrónico.

Desarrollo aplicaciones web a la medida, sistemas integrales de registro y reservación de hospedaje, front y back end, formularios de contacto todo con twig, php, mysql, jquery.

Contáctame