PHPmailer의 SMTP Connect() 오류 문제 해결
소개
이메일을 보내려고 할 때 PHPmailer를 사용하면 "메일러 오류: SMTP 연결() 실패" 오류가 발생할 수 있습니다. 이 문제는 Google의 XOAUTH2라는 새로운 인증 메커니즘 구현으로 인해 발생합니다.
해결책
이 문제를 해결하려면 다음 단계를 따르세요.
1. Google 계정에서 보안 수준이 낮은 앱 활성화
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 protected]"; // SMTP username $mail->Password = "mypassword"; // SMTP password $webmaster_email = "[email protected]"; //Reply to this email ID $email="[email 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!