PROBLEMA Envio de email de confirmacion utilizando composer y PHPMAILER

Iniciado por Fher, Abril 24, 2019, 12:03:21 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Abril 24, 2019, 12:03:21 AM Ultima modificación: Abril 24, 2019, 12:14:59 AM por Gabriela
Buenas ,  bueno mi problema es al enviar correos con la libreria con PHPmailer el codigo me dice que ya envio en codigo de confirmacion para activar la cuenta ,guarda el registro en la base de datos pero la confirmacion del login para activar el perfil  no llega al correo del destinatario aqui les comparto el codigo

registrar.php

<?php
   require "send_email.php";
   $_SESSION['nombre']  = $_POST['nombre'];
   $_SESSION['apellido'] = $_POST['apellido'];
   $_SESSION['email'] = $_POST['email'];

   $nombre = $mysqli->escape_string($_POST['nombre']);
   $apellido = $mysqli->escape_string($_POST['apellido']);
   $email = $mysqli->escape_string($_POST['email']);
   $password = $mysqli->escape_string(password_hash($_POST['password'], PASSWORD_BCRYPT)); // $2y$
   $hash = $mysqli->escape_string(md5(rand(0, 1000)));

   $result = $mysqli->query("SELECT * FROM usuarios WHERE email = '$email'") or die($mysqli->error());

   if($result->num_rows > 0){
      $_SESSION['message'] = "Usuario con este correo ya existe!";
      header("Location: error.php");
      exit();
   }else{
      $sql = "INSERT INTO usuarios(nombre, apellido, email, password, hash)"
      . "VALUES('$nombre', '$apellido', '$email', '$password', '$hash')";

      if($mysqli->query($sql)){
         $_SESSION['logged_in'] = true;

         $para_usuario = $email;
         $subject = 'Verifica tu cuenta';
         $message_body = '
         Hola '.$nombre.',
         Gracias por registrarte!
         Por favor confirma tu cuenta haciendo click en este link:
         
         No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
         sendEmail($para_usuario, $subject, $message_body);

         header('Location: perfil.php');   
         exit();

      }else{
         $_SESSION['message'] = 'Ocurrió un error!';
         header("Location: error.php");
         exit();
      }
   }
?>

send_mail.php

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

//Load Composer's autoloader
require 'vendor/autoload.php';
require 'vendor/phpmailer/phpmailer/src/Exception.php';
require 'vendor/phpmailer/phpmailer/src/PHPMailer.php';
require 'vendor/phpmailer/phpmailer/src/SMTP.php';

function sendEmail(){

    $mail = new PHPMailer(true);                              // Passing `true` enables exceptions
    try {
    $mail->SMTPDebug=2;   
    $mail->isSMTP();                                      // Set mailer to use SMTP
    $mail->Host = 'smtp.gmail.com';  // Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                               // Enable SMTP authentication
    $mail->Username = '[email protected]';                 // SMTP username
    $mail->Password = 'mipass';                           // SMTP password
    $mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
    $mail->Port = 587;                                    // TCP port to connect to

    //Recipients
    $mail->setFrom('[email protected]');
    $mail->addAddress('$para_usuario');

    $mail->isHTML(true);                                  // Set email format to HTML
    $mail->Subject = '$subject';
    $mail->Body    = '$message_body';

    $mail->send();
    echo 'Mensaje fue enviado';
    } catch (Exception $e) {
       echo 'Mensaje no puedo ser enviado. Mailer Error: ', $mail->ErrorInfo;
    }
}

?>