Cómo Enviar Correos Electrónicos con PHPMailer

Puedes implementar los correos electrónicos transaccionales de SendPulse con la configuración de SMTP en su proyecto utilizando PHPMailer. PHPMailer es compatible con muchas bibliotecas de PHP y le permite crear un correo electrónico personalizado con un archivo adjunto y enviarlo a sus suscriptores.

En este artículo veremos cómo instalar PHPMailer, dónde encontrar los parámetros SMTP en su cuenta SendPulse y cómo configurar un archivo para enviar un correo electrónico.

Instala PHPMailer

PuedeS instalar PHPMailer a través de Composer o descargar el archivo e instalarlo en su proyecto.

If you are using Composer, add the following line to your "composer.json" file:

Si estás usando Composer, agrega la siguiente línea a tu archivo "composer.json":

"phpmailer/phpmailer": "^6.5"

O ejecuta el siguiente comando:

composer require phpmailer/phpmailer

Si no estás utilizando Composer, descarga los archivos de PHPMailer y agrégalos a través de clases adicionales:

?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';

Consulta los detalles de instalación y un ejemplo de código en la documentación oficial de PHPMailer.

Copia tus Credenciales de Inicio de Sesión SMTP

Ve “Configurciones SMTP” > pestaña “General” en tu cuenta SendPulse. Copia los valores de autorización en SMTP: dirección del servidor, puerto, inicio de sesión y contraseña.

Puedes acceder a la configuración de SMTP después de activar tu perfil. El mensaje "Tu perfil está siendo moderado" desaparecerá de la página y recibirás un correo electrónico notificándote que tu cuenta ha sido aprobada y activada.

Configura el objeto para usar SMTP

Si usaste Composer para instalar PHPMailer, agrega el archivo autoload.php:

 require 'path/to/composer/vendor/autoload.php';

Si instalaste PHPMailer manualmente, inicialo así:

require path/to/PHPMailer/src/PHPMailer.php';
require path/to/PHPMailer/src/SMTP.php';
require path/to/PHPMailer/src/Exception.php';

Crea una clase PHPMailer y un nuevo objeto:

 <?php
use PHPMailer\PHPMailer\PHPMailer;

Crea un nuevo objeto PHPMailer:

 $mail = new PHPMailer(true);

A continuación, agrega los parámetros SMTP, los datos sobre su remitente y destinatarios, y el contenido de tu correo electrónico.

Agregar configuración de SMTP

En la sección "Configuración del servidor", agrega los datos de tu configuración SMTP a tu cuenta SendPulse.

 //Server settings
    $mail->SMTPDebug = SMTP::DEBUG_SERVER;                      //Enable verbose debug output
    $mail->isSMTP();                                            //Send using SMTP
    $mail->Host = 'smtp-pulse.com';                     //Set the SMTP server to send through
    $mail->SMTPAuth = true;                                   //Enable SMTP authentication
    $mail->Username = 'user@example.com';                     //SMTP username
    $mail->Password = 'secret';                               //SMTP password
    $mail->SMTPSecure = 'ssl';            //Enable implicit TLS encryption
    $mail->Port = 465;                                    //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS

Donde:

Host dirección del servidor
SMTPAuth Indica si la autenticación está habilitada (en nuestro caso, sí, la usamos y debemos agregar el valor true )
Nombre de usuario Tu correo electrónico de inicio de sesión de SendPulse
Contraseña Contraseña de tu cuenta SendPulse
SMTPSecure Tipo de cifrado (corresponde al puerto)
Puerto El puerto que utilizarás para conectarse a SMTP. Puedes elegir 2525, 465 y 587

Agrega el Remitente y los Destinatarios

Especifica el remitente y los destinatarios en la sección "Destinatarios".

 //Recipients
    $mail->setFrom('from@example.com', 'Mailer');
    $mail->addAddress('joe@example.net', 'Joe User');     //Add a recipient
    $mail->addAddress('ellen@example.com');               //Name is optional
    $mail->addCC('cc@example.com');
    $mail->addBCC('bcc@example.com');

Dónde:

setFrom Nombre y dirección del remitente del correo electrónico.

La dirección del remitente debe verificarse en tu cuenta SMTP

addAddress Nombre y dirección de correo electrónico del destinatario principal.

Puedes enviar tantos correos electrónicos por hora como lo determine tu plan de precios.

addCC Dirección de correo electrónico y nombre del destinatario secundario en la copia. El destinatario verá otros destinatarios.
addCC Dirección de correo electrónico y nombre del destinatario secundario en BCC. El destinatario no verá a otros destinatarios.

Agrega tu Contenido de Correo Electrónico

Especifica los parámetros de correo electrónico en la sección "Contenido".

Para personalizar el mensaje en el valor del parámetro, puedes utilizar las variables de tu proyecto.

//Content
    $mail->isHTML(true);                                  //Set email format to HTML
    $mail->Subject = 'Here is the subject';
    $mail->Encoding = 'base64';

    $mail->Body = 'This is the HTML message body <b>in bold!</b>';
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
   $mail->msgHTML(file_get_contents('contents.html'), __DIR__);

Dónde:

Asunto Asunto de tu correo electrónico
Cuerpo Cuerpo de tu correo electrónico HTML
AltBody Versión de texto de su correo electrónico
Codificación Codifica el contenido del correo electrónico en el formato de datos seleccionado.

Puedes usar los valores base64 y quoted-printable .

Puede usar los valores imprimibles entre comillas y base64.

msgHTML Converts an HTML email version to a text version

Además, puedes adjuntar archivos al mensaje. Especifica la ruta del archivo y el nombre del archivo en el parámetro addAttachment

//Attachments
    $mail->addAttachment('/var/tmp/file.tar.gz');         //Add attachments
    $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    //Optional name

Establece los Atributos de Envío

Al final del documento, se especifica la función de envío. En el comando echo, puedes especificar qué mensaje mostrar si el envío es exitoso o cuando recibes un error de envío:

$mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}

Puedes consultar un ejemplo de una configuración de archivo diferente en la documentación oficial de PHPMailer: Ejemplo simple y Ejemplo: SMTP.

Si tienes problemas para usarlo, también puedes consultar Solución de problemas de PHPMailer y ver los Códigos de Error SMTP.

Luego, deberás ejecutar un archivo de acuerdo con la configuración de tu proyecto en cada evento para poder enviar un correo electrónico transaccional.

Califica este artículo sobre "Cómo Enviar Correos Electrónicos con PHPMailer"

Opinión de los usuarios: 4 / 5

    Pruebe SendPulse SMTP hoy mismo gratis