注册后使用PHPMailer发送电子邮件

注册后使用PHPMailer发送电子邮件,php,phpmailer,Php,Phpmailer,我正确安装了PHPMailer,但我现在正尝试在用户创建帐户后使用它发送电子邮件,我不知道我做错了什么 数据会插入数据库,但之后不会发送电子邮件 Ps:我创建这个基本注册表表单只是为了测试它 我插入了我的注册码: <?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require $_SERVER['DOCUMENT_ROOT'] . '/mail/Exception.php'; requ

我正确安装了PHPMailer,但我现在正尝试在用户创建帐户后使用它发送电子邮件,我不知道我做错了什么

数据会插入数据库,但之后不会发送电子邮件

Ps:我创建这个基本注册表表单只是为了测试它

我插入了我的注册码:

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

require $_SERVER['DOCUMENT_ROOT'] . '/mail/Exception.php';
require $_SERVER['DOCUMENT_ROOT'] . '/mail/PHPMailer.php';
require $_SERVER['DOCUMENT_ROOT'] . '/mail/SMTP.php';

if(isset($_POST['registo'])){

    require 'dbh.inc.php';

$username = $_POST['uid'];
$email = $_POST['email'];
$residencia = $_POST ['res'];
$tel = $_POST['tel'];

        // GETS USER IP
       $ip = $_SERVER['REMOTE_ADDR'];

            // GENERATES PASSWORD
            function genPassword($length = 6) {
                $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
                $count = mb_strlen($chars);

                for ($i = 0, $result = ''; $i < $length; $i++) {
                    $index = rand(0, $count - 1);
                    $result .= mb_substr($chars, $index, 1);
                    $result = strtoupper($result);
                }
                return $result;
            }

$password = genPassword();

// INSERTS THE VALUES ON TABLE

        $stateUser = "Active";
        $sql = "INSERT INTO users_tmp (ipUser, cellUser, placeUser, uidUsers, emailUsers, pwdUsers, dataUser, stateUser) VALUES ( ?, ?, ?, ?, ?, ? , now(), ?)";

        $stmt = mysqli_stmt_init($conn);
        if(!mysqli_stmt_prepare($stmt, $sql)){
            header("Location: ../registo-gratis.php?error=sqlerror");
            exit();

        } else {

            mysqli_stmt_bind_param($stmt, "sssssss",  $ip , $tel, $residencia, $username, $email, $password, $stateUser);
            mysqli_stmt_execute($stmt);

$mail = new PHPMailer();

// Settings
$mail->IsSMTP();
$mail->CharSet = 'UTF-8';
$mail->Host = "ic-producoes.com"; 
$mail->Port = 465; 
$mail->SMTPSecure = 'ssl'; 
$mail->SMTPAuth = true;
$mail->SMTPDebug  = 0;             
$mail->Username = 'info@ic-producoes.com'; // email
$mail->Password = 'mypassword'; // password
$mail->addAddress($email); 
// Content
$mail->isHTML(true);                                 
$mail->Subject = 'My subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->send();

echo"Account created ";
        }}
else{
  header("Location: ../registo-gratis.php?error=sqlerror");
            exit();
}
这是我在注册代码后插入的电子邮件代码:

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

require $_SERVER['DOCUMENT_ROOT'] . '/mail/Exception.php';
require $_SERVER['DOCUMENT_ROOT'] . '/mail/PHPMailer.php';
require $_SERVER['DOCUMENT_ROOT'] . '/mail/SMTP.php';

if(isset($_POST['registo'])){

    require 'dbh.inc.php';

$username = $_POST['uid'];
$email = $_POST['email'];
$residencia = $_POST ['res'];
$tel = $_POST['tel'];

        // GETS USER IP
       $ip = $_SERVER['REMOTE_ADDR'];

            // GENERATES PASSWORD
            function genPassword($length = 6) {
                $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
                $count = mb_strlen($chars);

                for ($i = 0, $result = ''; $i < $length; $i++) {
                    $index = rand(0, $count - 1);
                    $result .= mb_substr($chars, $index, 1);
                    $result = strtoupper($result);
                }
                return $result;
            }

$password = genPassword();

// INSERTS THE VALUES ON TABLE

        $stateUser = "Active";
        $sql = "INSERT INTO users_tmp (ipUser, cellUser, placeUser, uidUsers, emailUsers, pwdUsers, dataUser, stateUser) VALUES ( ?, ?, ?, ?, ?, ? , now(), ?)";

        $stmt = mysqli_stmt_init($conn);
        if(!mysqli_stmt_prepare($stmt, $sql)){
            header("Location: ../registo-gratis.php?error=sqlerror");
            exit();

        } else {

            mysqli_stmt_bind_param($stmt, "sssssss",  $ip , $tel, $residencia, $username, $email, $password, $stateUser);
            mysqli_stmt_execute($stmt);

$mail = new PHPMailer();

// Settings
$mail->IsSMTP();
$mail->CharSet = 'UTF-8';
$mail->Host = "ic-producoes.com"; 
$mail->Port = 465; 
$mail->SMTPSecure = 'ssl'; 
$mail->SMTPAuth = true;
$mail->SMTPDebug  = 0;             
$mail->Username = 'info@ic-producoes.com'; // email
$mail->Password = 'mypassword'; // password
$mail->addAddress($email); 
// Content
$mail->isHTML(true);                                 
$mail->Subject = 'My subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->send();

echo"Account created ";
        }}
else{
  header("Location: ../registo-gratis.php?error=sqlerror");
            exit();
}

试着在$mail->send的行中放置一个var_转储,然后死,如下所示:var_转储$mail->send;死亡
您可能会收到一些关于PHPMailer状态的报告。

错误日志中没有任何内容?那么,您发送邮件的确切对象是谁?它是否有价值?Funk 49 Niner我正在尝试将其发送到该人在表单中编写的电子邮件