проблемы с сервером SMTP PHPMailer - PullRequest
0 голосов
/ 11 апреля 2019

У меня проблема с phpmailer, у меня правильные данные SMPT-сервера, а также имя пользователя и пароль, но это все равно помечает меня как ошибку в учетных данных, это мой код

  <?php 
include ("class.phpmailer.php");
include ("../vendor/phpmailer/phpmailer/PHPMailer.php");
include ("../vendor/phpmailer/phpmailer/src/SMTP");
 // Import PHPMailer classes into the global namespace
    // These must be at the top of your script, not inside a function
    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';
    require '../vendor/autoload.php';

    $name = trim(stripslashes($_POST['contactName']));
    $email = trim(stripslashes($_POST['contactEmail']));
    $subject = trim(stripslashes($_POST['contactSubject']));
    $contact_message = trim(stripslashes($_POST['contactMessage']));


    // Load Composer's autoloader


    // Instantiation and passing `true` enables exceptions

    $mail = new PHPMailer(true);
    try {

     //Server settings
    $mail->SMTPDebug = 2;                                       // Enable verbose debug output
     $mail->isSMTP();                                            // Set mailer to use SMTP
     $mail->Host       = 'smtp.gmail.com';  // Specify main and backup SMTP servers
     $mail->SMTPAuth   = true;                                   // Enable SMTP authentication
     $mail->Username   = 'admin@ucarolina.mx';                     // SMTP username
     $mail->Password   = '******';                             // SMTP password
     $mail->SMTPSecure = 'TSL';                                  // Enable TLS encryption, `ssl` also accepted
     $mail->Port       = 587;                                    // TCP port to connect to


        //Recipients
        $mail->setFrom('luribe@qvoz.com');
        $mail->addAddress($email, $name);     // Add a recipient


        // Content
        $mail->isHTML(true);                                  // Set email format to HTML
        $mail->Subject = $subject;
        $mail->Body    = $contact_message;
        $mail->AltBody = $contact_message;

        $mail->send();
       echo "Mensaje enviado";
    } catch (Exception $e) {
        echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
    }


?>

и это ошибка, которая отмечает меня Ошибка SMTP: не удалось подтвердить подлинность. Сообщение не может быть отправлено. Ошибка почтовой программы: ошибка SMTP: не удалось аутентифицироваться.

1 Ответ

1 голос
/ 12 апреля 2019

Есть строка, где нужно указать SMTPSecure.У вас есть эта строка, но tls был опечатан как TSL.Давайте изменим это:

Изменим

$mail->SMTPSecure = 'TSL'; 

на

$mail->SMTPSecure = 'tls'; 

Кроме того, вы должны добавить if / затем окружающие $mail->send();, например, так:

if (!$mail->send()) {
    echo "Mailer Error: " . $mail->ErrorInfo;
} else {
    echo "Message sent!";
}

Если письмо не отправлено, ваш оператор if поймает это и сообщит об ошибке.Посмотрите пример такой обработки ошибок в примере PHPMailer: https://github.com/PHPMailer/PHPMailer/blob/master/examples/gmail.phps

...