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;
}
}
?>
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;
}
}
?>