>백엔드 개발 >PHP 튜토리얼 >Gmail의 SMTP 서버를 통해 PHP 이메일이 전송되지 않는 이유는 무엇이며 Pear Mail 라이브러리를 사용하여 문제를 해결하려면 어떻게 해야 합니까?

Gmail의 SMTP 서버를 통해 PHP 이메일이 전송되지 않는 이유는 무엇이며 Pear Mail 라이브러리를 사용하여 문제를 해결하려면 어떻게 해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-21 09:51:10908검색

Why is my PHP email sent via Gmail's SMTP server failing, and how can I fix it using the Pear Mail library?

PHP에서 Gmail의 SMTP 서버를 사용하여 이메일 보내기

문제:
다음을 사용하여 이메일을 보내려고 할 때 PHP 페이지에서 GMail의 SMTP 서버에 인증 실패를 나타내는 오류가 발생합니다. SMTP.

해결책:

제공된 코드는 GMail의 SMTP에 대한 조정이 필요한 Pear Mail Library를 활용합니다:

  1. 프로토콜을 SSL로 설정: 앞에 'ssl://'을 포함하도록 호스트 라인을 수정합니다. 'smtp.gmail.com'.
  2. SSL에 포트 465 사용: 포트 번호를 '465'로 변경합니다.
  3. 올바른 사용자 이름과 비밀번호 확인: 전체 이메일 주소를 사용자 이름 및 관련 이름으로 사용하세요. 비밀번호.

업데이트된 코드:

require_once "Mail.php";

$from = '<[email&#160;protected]>';
$to = '<[email&#160;protected]>';
$subject = 'Hi!';
$body = "Hi,\n\nHow are you?";

$headers = array(
    'From' => $from,
    'To' => $to,
    'Subject' => $subject
);

$smtp = Mail::factory('smtp', array(
        'host' => 'ssl://smtp.gmail.com',
        'port' => '465',
        'auth' => true,
        'username' => '[email&#160;protected]',
        'password' => 'passwordxxx'
    ));

$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
    echo('<p>' . $mail->getMessage() . '</p>');
} else {
    echo('<p>Message successfully sent!</p>');
}

이러한 변경 사항을 통합함으로써 이제 코드는 PHP 페이지에서 Gmail의 SMTP 서버를 통해 이메일을 성공적으로 보낼 것입니다.

위 내용은 Gmail의 SMTP 서버를 통해 PHP 이메일이 전송되지 않는 이유는 무엇이며 Pear Mail 라이브러리를 사용하여 문제를 해결하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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