我已经正确安装了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 = '[email protected]'; // 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();
}