Enviar Emails con la libreria PHPMailer y configurar Gmail

Enviar emails automáticamente es muy útil para ciertos desarrollos de sistemas o aplicaciones que lo requieren, como notificar accesos, nuevos suscriptores, nuevos comentarios, etc, para ello usaremos la librería PHPmailer.

En este articulo les mostrare como enviar correos con PHP y la librería PHPMailer al final de este articulo les dejare un paquete de descarga con la librería + el código para enviar mensajes via email.

Te puede interesar: Inventio Max – Sistema de Inventario y Ventas Multi-Sucursal Profesional

Librería PHP Mailer

La librería PHPMailer lo podemos obtener en el repositorio de Github https://github.com/PHPMailer/PHPMailer consta básicamente de 3 archivos : class.phpmailer.php, class.smtp.php, class.pop3.php, entre otros.

Con la librería nos podemos conectar a cualquier servidor de correos, con un usuario y password que son los datos de la cuenta de correos y enviar correos a uno o varios destinatarios.

La librería facilita muchas cosas como el envió masivo, adjuntar archivos, entre otras cosas.

Codigo para enviar correos

El código para mostrarlo aquí utilizare un gist de Github, por cierto siganme en Github https://github.com/evilnapsis/:


<?php
include "class.phpmailer.php";
include "class.smtp.php";
$email_user = "TU_EMAIL";
$email_password = "TU_PASSWORD";
$the_subject = "Phpmailer prueba by Evilnapsis.com";
$address_to = "evilnapsis@gmail.com";
$from_name = "Evilnapsis";
$phpmailer = new PHPMailer();
// ———- datos de la cuenta de Gmail ——————————-
$phpmailer->Username = $email_user;
$phpmailer->Password = $email_password;
//———————————————————————–
// $phpmailer->SMTPDebug = 1;
$phpmailer->SMTPSecure = 'ssl';
$phpmailer->Host = "smtp.gmail.com"; // GMail
$phpmailer->Port = 465;
$phpmailer->IsSMTP(); // use SMTP
$phpmailer->SMTPAuth = true;
$phpmailer->setFrom($phpmailer->Username,$from_name);
$phpmailer->AddAddress($address_to); // recipients email
$phpmailer->Subject = $the_subject;
$phpmailer->Body .="<h1 style='color:#3498db;'>Hola Mundo!</h1>";
$phpmailer->Body .= "<p>Mensaje personalizado</p>";
$phpmailer->Body .= "<p>Fecha y Hora: ".date("d-m-Y h:i:s")."</p>";
$phpmailer->IsHTML(true);
$phpmailer->Send();
?>

view raw

send.php

hosted with ❤ by GitHub

Como puedes ver el código es muy simple 😉 te explico a continuación las lineas mas importantes:

Para lograr un envío de correos exitoso y evitar que caigan en la carpeta de SPAM, es fundamental configurar correctamente cada parámetro del script. A continuación, desglosamos la lógica línea por línea:

1. Configuración de Archivos y Credenciales

  • Líneas 2 y 3: Cargamos los archivos esenciales de la librería: class.phpmailer.php (núcleo) y class.smtp.php (protocolo de envío).

  • Líneas 5 y 6: Aquí se definen las credenciales de la cuenta de Gmail emisora. Estos valores se inyectan automáticamente en la autenticación de las líneas 13 y 14.

  • Líneas 7 a 9: Definimos los metadatos básicos: el asunto del correo, el email del destinatario y el nombre del remitente (persona o aplicación).

    Nota de seguridad: Recuerda cambiar el correo de ejemplo por tu dirección real para las pruebas de envío.

2. Parámetros del Servidor SMTP

  • Línea 16 (Debug): La instrucción SMTPDebug es vital para el desarrollo; si encuentras errores, descuenta esta línea para ver el log detallado del servidor.

  • Líneas 17 a 21: Configuración técnica del protocolo SMTP (Host de Gmail, puerto seguro 587, etc.). Esto garantiza una conexión cifrada con los servidores de Google.

3. Gestión de Remitente y Destinatarios

  • Línea 23: Se asigna la identidad de quien envía. Por defecto usamos la misma cuenta de autenticación para evitar bloqueos.

  • Línea 24: Agregamos al destinatario. Puedes repetir esta línea tantas veces como necesites si deseas realizar un envío múltiple.

4. Cuerpo del Mensaje y Envío Final

  • Línea 26: Asignación formal del asunto al objeto del correo.

  • Líneas 27 a 29: Construcción del mensaje. Aquí es donde redactas el contenido que recibirá el usuario.

  • Línea 30: Activamos el soporte para HTML, lo que te permite usar etiquetas como <b>, <a> o imágenes en el cuerpo del correo.

  • Línea 32: Ejecución del método de envío.

Conexión a Gmail

Para este ejemplo utilizo el servidor de Gmail, ya que a mi parecer es uno de los servidores muy confiables, pero dependiendo de la cuenta que tengamos hay que hacer algunos ajustes, ya que por seguridad Google bloquea los accesos a las cuentas y envía un correo de notificación como este:

Entonces lo que debemos hacer es permitir el acceso a aplicaciones menos seguras.

Y listo, ahora podemos enviar correos desde nuestra mini aplicación para enviar correos.

Resultado

Si todo ha salido bien,  se envía el correo y como en este caso me envie el correo a una cuenta mia, puedo ver el resultado:

Descarga

Ahora te dejo el paquete de descarga a continuación:

[sociallocker]

Link de descarga: https://drive.google.com/open?id=0B4VwLG0Dpi3tcWJ1ay1taWhncVk

[/sociallocker]

Conclusión

Como puedes ver enviar correos usando la librería PHPMailer y una cuenta de Gmail es relativamente fácil, ahora con te toca a ti darle una aplicación especial a este articulo.

Cuéntame en los comentarios que tal te pareció este articulo, te fue útil?? También te invito a que te suscribas a mi Blog y a mi canal de Youtube https://youtube.com/evilnapsis.

10 Comments

  1. Mucha gracias.
    Hice unos cambios y funcionó con esto.

    $phpmailer->SMTPSecure = ‘tls’; //’ssl’;
    $phpmailer->Host = “smtp.gmail.com”;
    $phpmailer->Port = 587; //465;

  2. El puerto no es correcto (o en mis integraciones ese no funciona), si a alguien le da problemas esa configuración usen esta:

    $mail->Port = 587;

    Un saludo.

  3. Que tal, buenas tardes.

    Acabo de hacer pruebas con esta información para un sitio web y funcionó muy bien. Gracias por el aporte.

    Saludos!!!

  4. Muy buen post, yo siempre he mandado correos masivos con PHPmailer y mi hosting de pago, pero a veces algunos correos se van directo a la carpeta de SPAM, así que trataré de usar los servidores de gmail a ver que tal me va.
    Recordemos que smtp.gmail.com nos permite enviar hasta 2000 mensajes al día.
    Dejo este link de soporte de google para ampliar la información.
    https://support.google.com/a/answer/176600?hl=es

    Saludos.
    Edgar

  5. Hola amigo!!! y si quisiera conectarlo al host, en vez de gmail. Eh visto varios codigos pero no permite enviar el correo

Leave a Reply

Your email address will not be published. Required fields are marked *

Discover more from Evilnapsis

Subscribe now to keep reading and get access to the full archive.

Continue reading