>백엔드 개발 >PHP 튜토리얼 >내 이메일 클라이언트가 작동하는 동안 내 PHPMailer 코드가 SMTP 호스트에 연결하지 못하는 이유는 무엇입니까?

내 이메일 클라이언트가 작동하는 동안 내 PHPMailer 코드가 SMTP 호스트에 연결하지 못하는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-02 12:22:10214검색

Why Does My PHPMailer Code Fail to Connect to the SMTP Host, While My Email Client Works?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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