"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como resolver erros de \"SMTP Connect() Failed\" ao usar PHPmailer com Gmail?

Como resolver erros de \"SMTP Connect() Failed\" ao usar PHPmailer com Gmail?

Publicado em 2024-11-08
Navegar:245

  How to Resolve \

Falha na conexão SMTP no PHPmailer: resolvendo o problema

Ao enviar e-mails através do PHPmailer, os desenvolvedores podem encontrar um erro: "Erro do Mailer: SMTP conexão() falhou." Esse problema geralmente surge ao utilizar o servidor SMTP do Gmail.

A solução está na implementação pelo Google de um novo mecanismo de autorização, XOAUTH2. Para permitir que o PHPmailer se conecte ao SMTP do Gmail, você deve habilitar a configuração “Aplicativos menos seguros” em sua conta Google. Esta etapa concede acesso a aplicativos que não aderem a protocolos de criptografia rígidos.

Além disso, em vez de usar SSL na porta 465, mude para TLS na porta 587. O TLS garante que suas solicitações sejam criptografadas com segurança, atendendo aos requisitos do Google. .

Abaixo está um snippet de código modificado que incorpora estas alterações:

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;
    }
}

Ao implementar essas modificações, você pode estabelecer uma conexão com o servidor SMTP do Gmail e transmitir e-mails através do PHPmailer.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3