«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как устранить ошибки «SMTP Connect() Failed» при использовании PHPmailer с Gmail?

Как устранить ошибки «SMTP Connect() Failed» при использовании PHPmailer с Gmail?

Опубликовано 8 ноября 2024 г.
Просматривать:372

  How to Resolve \

Ошибка подключения SMTP в PHPmailer: решение проблемы

При отправке электронных писем через PHPmailer разработчики могут столкнуться с ошибкой: «Ошибка почтовой программы: SMTP Connect() не удалось». Эта проблема часто возникает при использовании SMTP-сервера Gmail.

Решение заключается во внедрении Google нового механизма авторизации XOAUTH2. Чтобы разрешить PHPmailer подключаться к SMTP Gmail, вы должны включить настройку «Менее безопасные приложения» в своей учетной записи Google. Этот шаг предоставляет доступ к приложениям, которые не придерживаются строгих протоколов шифрования.

Кроме того, вместо использования SSL через порт 465 переключитесь на TLS через порт 587. TLS гарантирует, что ваши запросы будут надежно зашифрованы, что соответствует требованиям Google. .

Ниже приведен модифицированный фрагмент кода, включающий эти изменения:

require_once 'C:\xampp\htdocs\email\vendor\autoload.php';

define ('GUSER','[email protected]');
define ('GPWD','your password');

// make a separate file and include this file in that. call this function in that file.

function smtpmailer($to, $from, $from_name, $subject, $body) { 
    global $error;
    $mail = new PHPMailer();  // create a new object
    $mail->IsSMTP(); // enable SMTP
    $mail->SMTPDebug = 2;  // debugging: 1 = errors and messages, 2 = messages only
    $mail->SMTPAuth = true;  // authentication enabled
    $mail->SMTPSecure = 'tls'; // secure transfer enabled REQUIRED for GMail
    $mail->SMTPAutoTLS = false;
    $mail->Host = 'smtp.gmail.com';
    $mail->Port = 587;

    $mail->Username = GUSER;  
    $mail->Password = GPWD;           
    $mail->SetFrom($from, $from_name);
    $mail->Subject = $subject;
    $mail->Body = $body;
    $mail->AddAddress($to);
    if(!$mail->Send()) {
        $error = 'Mail error: '.$mail->ErrorInfo; 
        return false;
    } else {
        $error = 'Message sent!';
        return true;
    }
}

Внедрив эти изменения, вы сможете успешно установить соединение с SMTP-сервером Gmail и передавать электронные письма через PHPmailer.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3