>  기사  >  백엔드 개발  >  PHPmailer SMTP connect()가 Gmail에서 실패하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

PHPmailer SMTP connect()가 Gmail에서 실패하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-27 04:26:03814검색

Why is my PHPmailer SMTP connect() failing with Gmail and how can I fix it?

SMTP 연결() 실패 PHPmailer - PHP

이 문제는 특히 PHPmailer를 사용하여 이메일을 보내려고 할 때 오류가 발생할 때 발생합니다. "메일러 오류: SMTP 연결()이 실패했습니다." 근본 원인은 인증 설정 및 이메일 제공업체와의 호환성과 관련된 경우가 많습니다.

이 경우 해결 방법은 Google 계정에 대해 보안 수준이 낮은 앱을 활성화하는 것입니다. Google은 최근 제3자 애플리케이션에 대한 액세스를 명시적으로 허용해야 하는 XOAUTH2 인증을 구현했습니다.

이 문제를 해결하려면

  • https://www.google.com/settings를 방문하세요. /security/lesssecureapps
  • "켜기" 옵션 확인
  • 이 단계에서는 PHPmailer가 XOAUTH2 메커니즘을 사용하여 Google SMTP 서버에 연결할 수 있도록 승인합니다.

추가로, 올바른 SMTP 설정을 사용하고 있는지 확인하세요:

  • SMTP 서버: smtp.gmail.com
  • 포트: 587
  • TLS: 활성화됨
  • 인증:
  • 사용자 이름: Google 계정 이메일 주소
  • 비밀번호: Google 계정 비밀번호

다음 설정으로 업데이트된 코드 샘플은 다음과 같습니다.

<code class="php">require_once 'C:\xampp\htdocs\email\vendor\autoload.php';

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

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

보안 수준이 낮은 앱을 활성화하고 올바른 SMTP 설정을 사용하면 Gmail의 SMTP 서버와 함께 PHPmailer를 사용하여 이메일을 성공적으로 보낼 수 있습니다.

위 내용은 PHPmailer SMTP connect()가 Gmail에서 실패하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.