En este artículo, vamos a explorar la biblioteca Swift Mailer, que le permite enviar correos electrónicos desde aplicaciones PHP. Comenzando con la instalación y configuración, veremos un ejemplo del mundo real que muestra varios aspectos del envío de correos electrónicos mediante la biblioteca Swift Mailer..
Cuando se trata de enviar correos electrónicos en aplicaciones PHP, tiene una gran cantidad de opciones para elegir. Incluso podría terminar creando su propio contenedor para configurar rápidamente las funciones de correo electrónico. Sin embargo, siempre estás de suerte si estás utilizando una biblioteca bien mantenida y con muchas funciones..
Swift Mailer es una biblioteca popular para enviar correos electrónicos desde aplicaciones PHP, y es ampliamente aceptada por la comunidad de PHP. Es una biblioteca rica en características en el sentido de que cubre casi todos los aspectos del 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 biblioteca Swift Mailer.
En la siguiente sección, veremos un ejemplo del mundo real para demostrar cada uno de los pasos mencionados anteriormente..
En esta sección, veremos la instalación y configuración de la biblioteca de Swift Mailer. La instalación es bastante sencilla, ya que ya está disponible como paquete Composer. Antes de continuar, asegúrese de haber instalado Composer porque lo necesitaremos para instalar la biblioteca Swift Mailer.
Una vez que haya instalado Composer, siga adelante y tome la biblioteca de Swift Mailer con el siguiente comando.
$ composer require "swiftmailer / swiftmailer: ^ 6.0"
Con eso, debe instalarse la biblioteca Swift Mailer, junto con las dependencias necesarias en el vendedor directorio. Y los contenidos de los recién creados. compositor.json debería verse así:
"require": "swiftmailer / swiftmailer": "^ 6.0"
Así que esa es la parte de la instalación, pero ¿cómo se supone que la uses? De hecho, solo es cuestión de incluir el autoload.php archivo creado por Composer en su aplicación, como se muestra en el siguiente fragmento de código.
En la sección anterior, exploramos cómo instalar la biblioteca de Swift Mailer utilizando Composer. En esta sección, comenzaremos a implementar un ejemplo del mundo real..
Sigue adelante y crea el email.php archivo con los siguientes contenidos.
setUsername ('xxxxxxxx') -> setPassword ('xxxxxxxx'); // Crea el Mailer usando tu Transport $ mailer = new Swift_Mailer creado ($ transport); // Crear un mensaje $ mensaje = nuevo Swift_Message (); // Establecer un "asunto" $ mensaje-> setSubject ('Mensaje de demostración usando la biblioteca SwiftMailer'); // Establezca "From address" $ message-> setFrom (['[email protected]' => 'nombre del remitente']); // Establezca "Para direccionar" [Use el método setTo para múltiples destinatarios, el argumento debe ser matriz] $ message-> addTo ('[email protected]', 'nombre del destinatario'); // Agregue la dirección "CC" [Use el método setCc para múltiples destinatarios, el argumento debe ser una matriz] $ message-> addCc ('[email protected]', 'nombre del destinatario'); // Agregar la dirección "BCC" [Use el método setBcc para múltiples destinatarios, el argumento debería ser una matriz] $ message-> addBcc ('[email protected] ',' nombre del destinatario '); // Agregar un "Adjunto" (También, los datos dinámicos se pueden adjuntar) $ attachment = Swift_Attachment :: fromPath ('example.xls'); $ attachment-> setFilename ('report.xls'); $ mensaje-> adjuntar ($ adjunto); // Añadir "Imagen" en línea $ inline_attachment = Swift_Image :: fromPath ('nature.jpg'); $ cid = $ message-> embed ($ inline_attachment); // Establecer el "cuerpo" de texto sin formato $ message-> setBody ("Este es el cuerpo de texto sin formato del mensaje. \ NGracias, \ nAdmin"); // Establecer un "cuerpo" $ message-> addPart ('Esta es la versión HTML del mensaje.
Ejemplo de imagen en línea:
Gracias,
Admin ',' text / html '); // Enviar el mensaje $ resultado = $ mailer-> enviar ($ mensaje); catch (Exception $ e) echo $ e-> getMessage ();
Veamos cómo funciona este código..
La biblioteca de Swift Mailer admite diferentes transportes como SMTP y Sendmail mientras se envía un correo electrónico. Entonces, lo primero que debes hacer es inicializar transporte
objeto.
En el ejemplo anterior, he usado el transporte SMTP para enviar correos electrónicos.
$ transport = (nuevo Swift_SmtpTransport ('smtp.hostname', 25)) -> setUsername ('xxxxxxxx') -> setPassword ('xxxxxxxx');
Por supuesto, si desea utilizar el protocolo de Sendmail, deberá inicializar los correspondientes Swift_SendmailTransport
objeto.
// Crear el transporte SendMail $ transport = new Swift_SendmailTransport ('/ usr / sbin / sendmail -bs');
Una vez que se crea el transporte, debemos inicializar un objeto de correo y pasar el transporte que ya hemos creado.
// Crea el Mailer usando tu Transport $ mailer = new Swift_Mailer creado ($ transport);
Después de crear los objetos de transporte y correo, lo único que queda es instanciar la Swift_Message
Objeta y decórala con los atributos necesarios..
// Crear un mensaje $ mensaje = nuevo Swift_Message ();
Ahora, usaremos el $ mensaje
Objeto para preparar los contenidos de nuestro mensaje. Para empezar, la setsubject
Método le permite configurar el asunto del correo electrónico..
// Establecer un "asunto" $ mensaje-> setSubject ('Mensaje de demostración usando la biblioteca SwiftMailer');
los setFrom
El método se utiliza para establecer la dirección "De" del correo electrónico..
// Establezca "From address" $ message-> setFrom (['[email protected]' => 'Sender Name']);
Avanzando, configuremos 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 utilizar el añadir
método, y el ajustado a
El método, por otro lado, se utiliza para configurar múltiples destinatarios..
// Establezca "Para direccionar" [Use el método setTo para múltiples destinatarios, el argumento debe ser una matriz] $ message-> addTo ('[email protected]', 'nombre del receptor');
los addCc
y addBcc
Los métodos se utilizan para establecer las direcciones CC y BCC del correo electrónico respectivamente..
// Agregue la dirección "CC" [Use el método setCc para múltiples destinatarios, el argumento debe ser una matriz] $ message-> addCc ('[email protected]', 'nombre del destinatario'); // Agregar la dirección "BCC" [Use el método setBcc para múltiples destinatarios, el argumento debería ser una matriz] $ message-> addBcc ('[email protected] ',' nombre del destinatario ');
A continuación, veamos cómo puede adjuntar un archivo a un correo electrónico..
Primero necesitas instanciar la Swift_Atachment
objeto con un nombre de archivo válido. Después de crear el objeto adjunto, puede agregarlo al correo electrónico con el adjuntar
método. Además, puede utilizar el setFilename
Método si desea cambiar el nombre de archivo que aparecerá en el adjunto del mensaje.
// Agregar un "Adjunto" (También, los datos dinámicos se pueden adjuntar) $ attachment = Swift_Attachment :: fromPath ('example.xls'); $ attachment-> setFilename ('report.xls'); $ mensaje-> adjuntar ($ adjunto);
Junto con los archivos adjuntos normales, a veces desea incrustar imágenes en el texto del mensaje. Puedes hacerlo usando el empotrar
Método, como se muestra en el siguiente fragmento de código. los empotrar
El método devuelve la ID única del objeto incrustado, que puede usar más adelante en el mensaje mientras hace referencia a la imagen a través de src
propiedad.
// Añadir "Imagen" en línea $ inline_attachment = Swift_Image :: fromPath ('nature.jpg'); $ cid = $ message-> embed ($ inline_attachment);
A continuación, vamos a configurar el cuerpo del correo electrónico mediante el uso de la setBody
método.
// Establecer el "cuerpo" de texto sin formato $ message-> setBody ("Este es el cuerpo de texto sin formato del mensaje. \ NGracias, \ nAdmin");
Si desea configurar la versión HTML del mensaje, puede utilizar la addPart
Método, como se muestra en el siguiente fragmento de código. Como puedes ver, estamos usando $ cid
para hacer referencia a la imagen que incrustamos anteriormente.
// Establecer un "cuerpo" $ message-> addPart ('Esta es la versión HTML del mensaje.
Ejemplo de imagen en línea:
Gracias,
Admin ',' text / html ');
Finalmente, usaremos el enviar
Método del objeto Mailer para enviar el correo electrónico..
// Enviar el mensaje $ resultado = $ mailer-> enviar ($ mensaje);
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..
Hoy observamos una de las bibliotecas de 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 utilizando el siguiente formulario.