PHPMailer의 "SMTP 오류: SMTP 호스트에 연결할 수 없음" 장애 극복
인기 있는 PHP 메일 전송 라이브러리인 PHPMailer는 때때로 오류 "SMTP 오류: SMTP 호스트에 연결할 수 없습니다." Thunderbird와 같은 이메일 클라이언트를 통해 이메일을 성공적으로 보냈음에도 불구하고 이 문제가 발생할 수 있습니다.
문제를 해결하려면 작동 중인 Thunderbird 구성에 사용된 설정을 검사하고 PHPMailer에 사용된 설정과 비교하세요. 다음 표에는 주요 차이점이 강조되어 있습니다.
Setting | Thunderbird | PHPMailer |
---|---|---|
Server Name | mail.exampleserver.com | SMTP_HOST |
Port | 587 | SMTP_PORT |
Username | [email protected] | SMTP_USER |
Secure Authentication | No | SMTPAuth |
Connection Security | STARTTLS | Not specified |
제공된 PHPMailer 코드:
$mail = new PHPMailer(); $mail->IsSMTP(); $mail->Host = SMTP_HOST; $mail->Port = SMTP_PORT; $mail->SMTPAuth = true; $mail->Username = SMTP_USER; $mail->Password = SMTP_PASSWORD; $mail->From = MAIL_SYSTEM; $mail->FromName = MAIL_SYSTEM_NAME; $mail->AddAddress($aSecuredGetRequest['email']); $mail->IsHTML(true);
이러한 설정은 작동 중인 Thunderbird 구성과 유사해 보이지만 주요 차이점은 PHPMailer 코드의 연결 보안 사양. 이 문제를 해결하려면 PHPMailer 스크립트에 다음 줄을 추가하세요.
$mail->SMTPSecure = 'STARTTLS';
이 줄은 SMTP 서버에 대한 연결이 STARTTLS 암호화를 사용해야 함을 지정합니다. 이 조정이 이루어지면 PHPMailer 스크립트가 이메일을 성공적으로 전송해야 합니다.
참고: PHPMailer 버전 5.6 이상을 사용할 때 인증서 확인 실패와 관련된 오류가 발생하는 경우 다음을 구현할 수 있습니다. 다음 해결 방법:
$mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) );
이 해결 방법은 임시 조치여야 하며, 인증서를 교체하여 기본 인증서 문제를 해결해야 한다는 점을 기억하세요. 유효한 인증서가 있는 잘못된 인증서입니다.
위 내용은 내 이메일 클라이언트가 작동하는 동안 내 PHPMailer 코드가 SMTP 호스트에 연결하지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!