✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Enviar correo electrónico mediante el servidor SMTP de Gmail y la biblioteca Swift Mailer

143

¿Quiere enviar sus correos electrónicos mediante el servidor SMTP de Gmail? Cuando utiliza el servidor SMTP para sus correos electrónicos, existe una alta probabilidad de que sus correos electrónicos vayan a la bandeja de entrada del usuario y no al correo no deseado. El servidor SMTP evita que sus correos electrónicos se marquen como spam. En este artículo, estudiamos cómo enviar correo electrónico utilizando el servidor SMTP de Gmail y la biblioteca Swift Mailer.

Como propietario de un sitio, siempre desea que su correo electrónico vaya directamente a la bandeja de entrada del usuario y no al correo no deseado o basura. Aumenta la probabilidad de que el usuario lea su correo electrónico y realice la acción que desea.

¿Por qué es necesario utilizar el servidor SMTP?

Para un sitio web, es normal tener un formulario que envíe un correo electrónico a los usuarios o administradores. Puede ser su boletín, formulario de contacto o proceso de registro donde necesita enviar un correo electrónico como reconocimiento.

PHP proporciona una mail()función para enviar correos electrónicos. Sin embargo, si su servidor no configura los ajustes de correo correctamente, este método no funciona. Otra posibilidad es que cuando envía correos electrónicos usando el mail()método, puede terminar en spam.

Para superar estas 2 situaciones, debe utilizar el servidor SMTP para enviar sus correos electrónicos.

Al usar la biblioteca Swift Mailer, el usuario puede usar cualquier servidor SMTP como Gmail, Sendgrid, Mandrill o su propio servidor SMTP provisto de alojamiento para enviar los correos electrónicos. En este tutorial, elijo un servidor SMTP de Gmail.

Habiendo dicho eso, echemos un vistazo a cómo usar la biblioteca Swift Mailer para enviar correos electrónicos.

Instalación de Swift Mailer

Para utilizar la biblioteca Swift Mailer, debe tener PHP versión 7.2 o superior en su servidor. Si está utilizando la versión anterior, actualícela a la última versión de PHP. La mayoría de los proveedores de alojamiento como Bluehost actualizan la versión de PHP a pedido. No necesita invertir su tiempo para actualizar la versión.

Continuando, recomiendo usar Composer para instalar la biblioteca Swift Mailer. Abra la terminal en el directorio raíz de su proyecto y ejecute el comando:

composer require swiftmailer/swiftmailer

Como vamos a utilizar Gmail SMTP, debe cambiar algunas configuraciones en su cuenta de Google. Inicie sesión en su cuenta de Google y haga clic en Cuenta. Una vez que esté en la página de la cuenta de Google, haga clic en Seguridad. Desplácese hacia abajo y encontrará la configuración de ‘Acceso a aplicaciones menos seguras’. Ponlo en ON.

Enviar correo electrónico mediante el servidor SMTP de Gmail y la biblioteca Swift Mailer

Enviar correo electrónico mediante el servidor SMTP de Gmail y la biblioteca Swift Mailer

En esta etapa, está listo con la biblioteca Swift Mailer y también cambió la configuración de la cuenta de Gmail. Ahora, estás listo para seguir adelante.

Supongamos que tiene un archivo sendmail.phpen el que necesita escribir un código que envía correos electrónicos. Escriba el siguiente código en su archivo PHP.

sendmail.php

<?php
require_once 'vendor/autoload.php';
 
try {
    // Create the Transport
    $transport = (new Swift_SmtpTransport('smtp.googlemail.com', 465, 'ssl'))
      ->setUsername('YOUR_GMAIL_USERNAME')
      ->setPassword('YOUR_GMAIL_PASSWORD')
    ;
 
    // Create the Mailer using your created Transport
    $mailer = new Swift_Mailer($transport);
 
    // Create a message
    $body = 'Hello, <p>Email sent through <span style="color:red;">Swift Mailer</span>.</p>';
 
    $message = (new Swift_Message('Email Through Swift Mailer'))
      ->setFrom(['FROM_EMAIL_ADDRESS' => 'FROM_NAME'])
      ->setTo(['RECEPIENT_1_EMAIL_ADDRESS'])
      ->setCc(['RECEPIENT_2_EMAIL_ADDRESS'])
      ->setBcc(['RECEPIENT_3_EMAIL_ADDRESS'])
      ->setBody($body)
      ->setContentType('text/html')
    ;
 
    // Send the message
    $mailer->send($message);
 
    echo 'Email has been sent.';
} catch(Exception $e) {
    echo $e->getMessage();
}

En el código anterior, he pasado los siguientes valores para la configuración del servidor SMTP de Gmail.

  • Dirección del servidor SMTP de Google: smtp.googlemail.com
  • Puerto SMTP de Gmail: 465
  • Cifrado: ssl

Además de estos valores, debe cambiar otros marcadores de posición como YOUR_GMAIL_USERNAME, YOUR_GMAIL_PASSWORD, etc.

Después de reemplazar todos los valores, ejecute este archivo en un navegador. Debe recibir el correo electrónico en la bandeja de entrada, no en el correo no deseado.

Envíe archivos adjuntos únicos o múltiples en un correo electrónico

A veces es posible que deba enviar archivos adjuntos en un correo electrónico. Con Swift Mailer puede enviar uno o varios archivos adjuntos de la siguiente manera:

$message->attach(Swift_Attachment::fromPath(__DIR__. '/sample.png')); //absolute path for your attachment
$message->attach(Swift_Attachment::fromPath(__DIR__. '/sample-ebook.pdf'));

Todo lo que necesita hacer es usar el attachmétodo y pasar la ruta absoluta del archivo que necesita enviar como adjunto. Aquí supongo que debe enviar ‘sample.png’ y ‘sample-ebook.pdf’ como archivos adjuntos.

Entonces nuestro código final es el siguiente.

sendmail.php

<?php
require_once 'vendor/autoload.php';
 
try {
    // Create the Transport
    $transport = (new Swift_SmtpTransport('smtp.googlemail.com', 465, 'ssl'))
      ->setUsername('YOUR_GMAIL_USERNAME')
      ->setPassword('YOUR_GMAIL_PASSWORD')
    ;
 
    // Create the Mailer using your created Transport
    $mailer = new Swift_Mailer($transport);
 
    // Create a message
    $body = 'Hello, <p>Email sent through <span style="color:red;">Swift Mailer</span>.</p>';
 
    $message = (new Swift_Message('Email Through Swift Mailer'))
      ->setFrom(['FROM_EMAIL_ADDRESS' => 'FROM_NAME'])
      ->setTo(['RECEPIENT_1_EMAIL_ADDRESS'])
      ->setCc(['RECEPIENT_2_EMAIL_ADDRESS'])
      ->setBcc(['RECEPIENT_3_EMAIL_ADDRESS'])
      ->setBody($body)
      ->setContentType('text/html')
      ->attach(Swift_Attachment::fromPath(__DIR__. '/sample.png'))
      ->attach(Swift_Attachment::fromPath(__DIR__. '/sample-ebook.pdf'))
    ;
 
    // Send the message
    $mailer->send($message);
 
    echo 'Email has been sent.';
} catch(Exception $e) {
    echo $e->getMessage();
}

Se trata de enviar correos electrónicos a través de la biblioteca Swift Mailer. También puede usar Symfony Swift Mailer para enviar mensajes a través de algunos servidores SMTP como Mailgun, Mandrill, etc. Me gustaría escuchar sus pensamientos y sugerencias en la sección de comentarios a continuación.

Artículos relacionados

Fuente de grabación: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More