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

Enviar correo electrónico usando el servidor SMTP de Gmail desde PHP Script

77

El correo electrónico juega un papel importante en el sitio web. Cada sitio web normalmente necesita enviar correos electrónicos a los usuarios. Estos correos electrónicos se pueden enviar desde la página de contacto, el boletín informativo, el formulario de registro, etc.

PHP proporciona una mail()función que se utiliza para enviar un correo electrónico. Pero existen limitaciones al usar el mail()método. No puede enviar correo electrónico desde un servidor de desarrollo local. Otro inconveniente es que existe una alta posibilidad de que su correo electrónico termine en Spam.

En la mayoría de los casos, el mail()método incluso no envía un correo electrónico. Esto puede deberse a una configuración de servidor incorrecta o algo más.

Para salir de estos problemas o limitaciones, se puede utilizar el servidor SMTP para enviar los correos electrónicos.

En este artículo, estudiamos cómo usar PHPMailer y el servidor SMTP de Gmail para enviar correos electrónicos.

Instalación

Primero debe instalar la biblioteca PHPMailer en su proyecto. La forma recomendada de instalar una biblioteca es a través de Composer.

Abra el símbolo del sistema en el directorio raíz de su proyecto y ejecute el siguiente comando.

composer require phpmailer/phpmailer

Como usamos Gmail SMTP, debe cambiar algunas configuraciones en su cuenta de Google. Inicie sesión en su cuenta de Google y haga clic en Mi cuenta. Una vez que esté en la página Mi cuenta, 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 usando el servidor SMTP de Gmail desde PHP Script

Después de esto, necesitamos escribir un código que envíe un correo electrónico usando la biblioteca PHPMailer y el servidor SMTP de Gmail.

Script PHP para enviar correo electrónico mediante el servidor SMTP de Gmail

Abra su archivo PHP donde necesita escribir un código para correos electrónicos. Por ejemplo, supongo que tiene un sendemail.phparchivo en el directorio raíz.

sendemail.php

<?php
//Import PHPMailer classes into the global namespace
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
 
require_once 'vendor/autoload.php';
 
$mail = new PHPMailer(true);
?>

En el código anterior, he incluido el entorno de la biblioteca PHPMailer en el archivo PHP.

A continuación, para enviar correos electrónicos usando PHPMailer, el usuario debe pasar la dirección del servidor SMTP de Gmail, el puerto SMTP para Gmail y la autenticación SMTP (que no es más que su nombre de usuario y contraseña de una cuenta de Google).

$mail->isSMTP();
$mail->Host = 'smtp.googlemail.com';  //gmail SMTP server
$mail->SMTPAuth = true;
$mail->Username = 'GMAIL_USERNAME';   //username
$mail->Password = 'GMAIL_PASSWORD';   //password
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;                    //SMTP port

¡Eso es! Ha terminado con la configuración. Ahora, puede continuar con el envío de un correo electrónico a un usuario.

$mail->setFrom('FROM_EMAIL_ADDRESS', 'FROM_NAME');
$mail->addAddress('RECEPIENT_EMAIL_ADDRESS', 'RECEPIENT_NAME');
 
$mail->isHTML(true);
 
$mail->Subject = 'Email subject';
$mail->Body    = '<b>Email Body</b>';
 
$mail->send();
echo 'Message has been sent';

Reemplace los marcadores de posición con valores reales. Ejecute este archivo en un navegador y su correo electrónico debe enviarse a la dirección de correo electrónico del destinatario.

Envío de archivos adjuntos en un correo electrónico

Usando la biblioteca PHPMailer, uno puede enviar archivos adjuntos únicos o múltiples en un correo electrónico. Todo lo que necesita hacer es pasar una ruta de directorio de sus archivos adjuntos al método de la addAttachmentsiguiente manera.

$mail->addAttachment(__DIR__. '/attachment1.png');
$mail->addAttachment(__DIR__. '/attachment2.jpg');

Nuestro código final es el siguiente.

sendemail.php

<?php
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
 
require_once "vendor/autoload.php";
require_once "constants.php";
 
$mail = new PHPMailer(true);
 
try {
    $mail->isSMTP();
    $mail->Host = 'smtp.googlemail.com';  //gmail SMTP server
    $mail->SMTPAuth = true;
    $mail->Username = GMAIL_USERNAME;   //username
    $mail->Password = GMAIL_PASSWORD;   //password
    $mail->SMTPSecure = 'ssl';
    $mail->Port = 465;                    //smtp port
  
    $mail->setFrom('FROM_EMAIL_ADDRESS', 'FROM_NAME');
    $mail->addAddress('RECEPIENT_EMAIL_ADDRESS', 'RECEPIENT_NAME');
 
    $mail->addAttachment(__DIR__. '/attachment1.png');
    $mail->addAttachment(__DIR__. '/attachment2.png');
 
    $mail->isHTML(true);
    $mail->Subject = 'Email Subject';
    $mail->Body    = '<b>Email Body</b>';
 
    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo 'Message could not be sent. Mailer Error: '. $mail->ErrorInfo;
}
?>

Espero que comprenda cómo enviar correo electrónico utilizando el servidor SMTP de Gmail desde un script PHP. Comparta sus pensamientos y sugerencias en un comentario 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