ホームページ >バックエンド開発 >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.

解決策:

提供されたコードは Pear Mail ライブラリを利用するため、GMail の SMTP 用の調整が必要です:

  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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。