PHPMailer:SMTP发送电子邮件问题

时间:2019-07-01 20:45:06

标签: php email phpmailer

我在PHPMySQL中有简单的代码,并且我正在使用PHPPHPMailer。我的代码不在数据库中时,会将电子邮件地址插入表单。将电子邮件地址添加到数据库后,我还需要PHPMailer发送电子邮件。

现在,当电子邮件不在数据库中并且仅显示来自$dataDuplicate的消息时,我的代码不会发送电子邮件。

我需要来自PHPMailer GitHub的基本smtp.php。

所以我的代码正常地将电子邮件插入数据库,但是未发送到数据库中新电子邮件的电子邮件不起作用。

这是我的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!';
}

0 个答案:

没有答案