У меня есть простой код в PHP
и MySQL
, и я использую PHP
library PHPMailer
.Мой код вставляет адрес электронной почты в форму, когда его нет в базе данных.Мне также нужен PHPMailer для отправки электронной почты, когда адрес электронной почты был добавлен в базу данных.
Теперь мой код не отправляет электронную почту, когда электронная почта отсутствует в базе данных и показывает только сообщение от $dataDuplicate
.
Мне потребовался базовый файл smtp.php от PHPMailer GitHub.
Поэтому мой код обычно вставляет электронную почту в базу данных, но электронная почта, которая не была отправлена на новую электронную почту в базе данных, не работает.
Вот мой email.php:
if (empty($_POST['email'])) return http_response_code(404);
$emaildb = mysqli_connect("localhost", "root", "root", "xxxxx");
if(!$emaildb) {
die("ERROR: Could not connect. " . mysqli_connect_error());
}
$email = mysqli_real_escape_string($emaildb, $_REQUEST['email']);
$sql = "INSERT INTO emails (email)
SELECT '$email'
FROM DUAL
WHERE NOT EXISTS
(SELECT 1
FROM emails
WHERE email = '$email')
LIMIT 1";
$result = mysqli_query($emaildb, $sql);
header('Content-type: application/json');
if(mysqli_insert_id($emaildb) == 0) {
$dataDuplicate = array(
"existing" => true,
"message" => "Existing!!!!"
);
echo json_encode($dataDuplicate);
} else {
$dataSuccess = array(
"message" => "Super new member!"
);
echo json_encode($dataSuccess);
require_once 'smtp.php';
}
mysqli_close($emaildb);
Вот мой smtp.php:
require 'vendor/autoload.php';
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'vendor/phpmailer/phpmailer/src/Exception.php';
require 'vendor/phpmailer/phpmailer/src/PHPMailer.php';
require 'vendor/phpmailer/phpmailer/src/SMTP.php';
use PHPMailer\PHPMailer\PHPMailer;
date_default_timezone_set('Europe/Bratislava');
require 'vendor/autoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Host = 'smtp.test.sk';
$mail->Port = 25;
$mail->SMTPAuth = true;
$mail->Username = 'test@test.sk';
$mail->Password = 'pass';
$mail->setFrom('test@test.sk', 'Fesky Vanka');
$mail->addReplyTo('test@test.sk', 'Fesky Vanka');
$mail->addAddress('tests@gmail.com', 'John Doe');
$mail->Subject = 'Skuska skusiek';
$mail->Body = 'This is your email' . $email . '!!!';
if (!$mail->send()) {
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message sent!';
}