Как я могу заставить PHPMailer работать на моем веб-сервере так же, как на локальном сервере XAMPP в моих окнах? - PullRequest
0 голосов
/ 05 марта 2019

У меня есть фрагмент кода PHPMailer для отправки ссылки подтверждения на зарегистрированный адрес электронной почты пользователя после завершения регистрации.Этот код работает исключительно хорошо на моем локальном сервере XAMPP, пока я разрабатывал свой сайт.Когда я закончу и развернуюсь на моем веб-сервере (размещенном на namecheap), при регистрации пользователя электронное письмо не будет отправлено, пока моя база данных заберет и сохранит данные пользователя.Я искал решение везде, где только мог, но не смог найти.Вот мой кусок кода (он все еще отлично работает на моем XAMPP).

<?php


use PHPMailer\PHPMailer\PHPMailer;


use PHPMailer\PHPMailer\Exception;

require '../PHPMailer/src/PHPMailer.php';

require '../PHPMailer/src/SMTP.php';
        $mail = new PHPMailer;

        //Enable SMTP debugging. 
        $mail->SMTPDebug = 2;                               
        //Set PHPMailer to use SMTP.
        $mail->isSMTP();
        $mail->SMTPOptions = array(
            'ssl' => array(
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true
            )
        );         

        //Set SMTP host name                          
        $mail->Host = "smtp.gmail.com";
        //Set this to true if SMTP host requires authentication to send email
        $mail->SMTPAuth = true;                          
        //Provide username and password     
        $mail->Username = "myusername@gmail.com";                 
        $mail->Password = "myemailpassword";                           
        //If SMTP requires TLS encryption then set it
        $mail->SMTPSecure = "tls";                           
        //Set TCP port to connect to 
        $mail->Port = 587;                                   

        $mail->From = "myemail";
        $mail->FromName = "myname";

        $mail->addAddress($email);

        $mail->isHTML(true);
        $mail->CharSet = 'UTF-8';

        $mail->Subject = "ACTIVATE YOUR ACCOUNT";
        $search  = array('[sponsor]', '[email]', '[uid]', '[code]', '[username]', '[phone]', '[password]', '[bankname]', '[accname]', '[accno]');
        $replace = array($sponsor, $email, $uid, $code, $username, $phone, $_POST['password'], $bankname, $accname, $accno);
        $mail->Body = str_replace($search, $replace, file_get_contents('../Emails/registeremail.html'));

        if(!$mail->send()) 
        {
            //add support link later
            $_SESSION['sign_msg']= "Something Went Wrong, Please contact Support";
            header('location:signup.php');
        } 
        else 
        {

        $_SESSION['sign_msg'] = "Verification link has been sent to your email. &nbsp; &nbsp; &#9745; <br>
        Click on the link to verify your account";
        header('location:signup.php');
            }
?>
...