PHPmailer에서 \'메일러 오류: SMTP 연결() 실패\'를 수정하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-10-27 00:03:30
원래의
301명이 탐색했습니다.

How to Fix

PHPmailer의 SMTP Connect() 오류 문제 해결

소개

이메일을 보내려고 할 때 PHPmailer를 사용하면 "메일러 오류: SMTP 연결() 실패" 오류가 발생할 수 있습니다. 이 문제는 Google의 XOAUTH2라는 새로운 인증 메커니즘 구현으로 인해 발생합니다.

해결책

이 문제를 해결하려면 다음 단계를 따르세요.

1. Google 계정에서 보안 수준이 낮은 앱 활성화

  • Google 계정에 로그인하고 다음으로 이동하세요. https://www.google.com/settings/security/lesssecureapps
  • "보안 수준이 낮은 앱에 대한 액세스 허용" 옵션이 활성화되어 있는지 확인하세요.

2. 포트 465를 통한 SSL 대신 포트 587을 통한 TLS 사용

  • 포트 465를 통한 SSL 대신 포트 587을 통한 TLS를 사용하도록 코드를 수정합니다. 다음 줄을 바꿉니다.

    <code class="php">$mail->Host = "ssl://smtp.gmail.com";
    $mail->Port = 465;</code>
    로그인 후 복사

    사용:

    <code class="php">$mail->Host = 'smtp.gmail.com';
    $mail->Port = 587;</code>
    로그인 후 복사

샘플 코드

수정된 코드는 다음과 같습니다.

<code class="php">require "class.phpmailer.php";
$mail = new PHPMailer(); 
$mail->IsSMTP();                              // send via SMTP
$mail->SMTPDebug = 2;  // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true;                       // turn on SMTP authentication
$mail->SMTPSecure = 'tls'; // secure transfer enabled REQUIRED for GMail
$mail->SMTPAutoTLS = false;
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->Username = "[email&#160;protected]";        // SMTP username
$mail->Password = "mypassword";               // SMTP password
$webmaster_email = "[email&#160;protected]";       //Reply to this email ID
$email="[email&#160;protected]";                // Recipients email ID
$name="My Name";                              // Recipient's name
$mail->From = $webmaster_email;
$mail->FromName = "My Name";
$mail->AddAddress($email,$name);
$mail->AddReplyTo($webmaster_email,"My Name");
$mail->WordWrap = 50;                         // set word wrap
$mail->IsHTML(true);                          // send as HTML
$mail->Subject = "subject";
$mail->Body = "Hi,
This is the HTML BODY ";                      //HTML Body 
$mail->AltBody = "This is the body when user views in plain text format"; //Text Body 

if(!$mail->Send())
{
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo "Message has been sent";
}</code>
로그인 후 복사

이러한 변경 사항을 구현하면 PHPmailer를 사용하여 이메일을 성공적으로 보낼 수 있습니다.

위 내용은 PHPmailer에서 \'메일러 오류: SMTP 연결() 실패\'를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!