Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. PHP
Code

Enviar CorreosEelectrónicos en PHP Usando Swift Mailer

by
Difficulty:BeginnerLength:ShortLanguages:

Spanish (Español) translation by Rene Soto (you can also view the original English article)

En este artículo, vamos a explorar la librería Swift Mailer, que te permite enviar correos electrónicos desde aplicaciones PHP. Comenzando con la instalación y la configuración, veremos un ejemplo practico que demuestra varios aspectos del envío de correos electrónicos utilizando la biblioteca de Swift Mailer.

¿Qué es Swift Mailer?

Cuando se trata de enviar correos electrónicos en aplicaciones PHP, se tiene una gran cantidad de opciones para elegir. Incluso podrías terminar creando tu propio contenedor para configurar funciones de correo electrónico rápidamente. Sin embargo, siempre estarás de suerte si estás utilizando una biblioteca bien mantenida y rica en funciones.

Swift Mailer es una librería popular para enviar correos electrónicos desde aplicaciones PHP, y es ampliamente aceptada por la comunidad PHP. Es una librería rica en funciones en el sentido de que abarca casi todos los aspectos de envío de correos electrónicos, desde la configuración de diferentes transportes hasta la personalización del mensaje que se envía.

De hecho, es un proceso bastante sencillo para enviar correos electrónicos utilizando la librería de Swift Mailer.

  1. Iniciar el objeto Transport (SMTP / Sendmail).
  2. Iniciar el objeto Mailer con ese Transport.
  3. Iniciar el objeto Message.
  4. Dar el formato y enviar el mensaje.

En la siguiente sección, revisaremos un ejemplo práctico para demostrar cada uno de los pasos antes mencionados.

Instalación y configuración

En esta sección, veremos la instalación y configuración de la librería de Swift Mailer. La instalación es bastante sencilla, ya que está disponible como un paquete Composer. Antes de continuar, asegúrese de haber instalado Composer porque lo necesitaremos para instalar la librería de Swift Mailer. 

Una vez que hayas instalado Composer, continúa y tome la libreria de Swift Mailer con el siguiente comando.

Con eso, se debe instalar la biblioteca de Swift Mailer, junto con las dependencias necesarias en el directorio del proveedor. Y el contenido del recién creado composer.json debería verse así

Esa es la parte de la instalación, pero ¿cómo se supone que debes usarla? De hecho, solo se trata de incluir el archivo autoload.php creado por Composer en su aplicación, como se muestra en el siguiente fragmento.

Como enviar Correos Electrónicos

En la sección anterior, exploramos cómo instalar la biblioteca de Swift Mailer usando Composer. En esta sección, comenzaremos a implementar un ejemplo del mundo real. Continúa y crea el archivo email.php con los siguientes contenidos.

Continúa y crea el archivo email.php con los siguientes contenidos.

Veamos cómo funciona este código.

Inicializar Swift Mailer

La biblioteca de Swift Mailer admite diferentes transportes como SMTP y Sendmail mientras envía un correo electrónico. Entonces, lo primero que debe hacer es inicializar el objeto transport.

En el ejemplo anterior, he utilizado el transporte SMTP para enviar correos electrónicos.

Por supuesto, si desea utilizar el protocolo Sendmail, deberá inicializar el correspondiente objeto Swift_SendmailTransport.

Una vez que se crea el transporte, necesitamos inicializar un objeto de correo y pasar el transporte que ya hemos creado.

Crear un mensaje 

Después de crear los objetos de transporte y envío, lo único que queda es crear una instancia del objeto Swift_Message y decorarlo con los atributos necesarios.

Ahora, usaremos el objeto $message para preparar el contenido de nuestro mensaje. Para empezar, el método setSubject le permite establecer el asunto del correo electrónico.

El método setFrom se usa para establecer la dirección "De" del correo electrónico.

Avanzando, establezcamos la dirección "Para" del correo electrónico. De hecho, hay un par de variaciones para configurar los destinatarios del correo electrónico. Si desea configurar un único destinatario, puede usar el método addTo, y el método setTo, por otro lado, se usa para configurar varios destinatarios.

Los métodos addCc y addBcc se utilizan para configurar las direcciones CC y BCC del correo electrónico, respectivamente.

Adjuntar archivos

A continuación, echemos un vistazo a cómo puede adjuntar un archivo a un correo electrónico.

Primero necesitas crear una instancia del objeto Swift_Attachment con un nombre de archivo válido. Después de crear el objeto adjunto, puede agregarlo al correo electrónico con el método adjunto.  Además, puede usar el método setFilename si desea cambiar el nombre del archivo que aparecerá en el archivo adjunto del mensaje.

Junto con archivos adjuntos normales, a veces desea incrustar imágenes en el texto del mensaje. Puede hacerlo utilizando el método de inserción, como se muestra en el siguiente fragmento. El método embed devuelve la identificación única del objeto incrustado, que puede usar más adelante en el mensaje al hacer referencia a la imagen a través de la propiedad src.

El Cuerpo del Mensaje 

A continuación, establezcamos el cuerpo del correo electrónico utilizando el método setBody.

Si desea establecer la versión HTML del mensaje, puede usar el método addPart, como se muestra en el siguiente fragmento. Como puede ver, estamos usando $cid para hacer referencia a la imagen que incorporamos anteriormente.

Enviar el Mensaje

¡Envía el mensaje! Finalmente, usaremos el método send del objeto Mailer para enviar el correo electrónico.

Intenta ejecutar el script, ¡y deberías recibir un correo electrónico! Avísame en la sección de comentarios si tienes algún problema.

Conclusión

Hoy, miramos una de las bibliotecas PHP más populares para enviar correos electrónicos: Swift Mailer. Con esta biblioteca, puede enviar fácilmente correos electrónicos desde sus scripts PHP. Siéntase libre de publicar sus pensamientos y consultas mediante el siguiente formulario.

Siéntate libre de publicar sus pensamientos y consultas mediante el siguiente formulario.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.