ホームページ > バックエンド開発 > PHPチュートリアル > PHP mail() 関数の「From」ヘッダーが無視されるのはなぜですか?どうすれば修正できますか?

PHP mail() 関数の「From」ヘッダーが無視されるのはなぜですか?どうすれば修正できますか?

DDD
リリース: 2024-12-01 10:54:09
オリジナル
589 人が閲覧しました

Why is my PHP mail() function's

PHP メールの「From」ヘッダーの問題

ユーザーの機能を強化するために、ユーザーに自動的にメールを送信する Web サイトが開発されました。登録。このタスクに使用される PHP コードの詳細を以下に示します。

<?php
$to = "[email&#160;protected]";
$subject = "Test mail";
$message = "Hello! \nThis is a simple email message.";

$headers = "From: [email&#160;protected]";
$headers .= "\r\nReply-To: [email&#160;protected]";
$headers .= "\r\nX-Mailer: PHP/".phpversion();

mail($to,$subject,$message,$headers);

echo "Mail Sent.";
?>
ログイン後にコピー

このコードを通じて電子メールを送信すると、予期しない問題が発生しました。配信されたメールに表示される「From」ヘッダーは「[email protected]」のままですが、「Reply-To」ヘッダーには指定された「[email protected]」の値が正しく反映されました。使用されたメール サーバーは box123.bluehost.com でした。

問題の原因

さらなる調査の結果、「」として Gmail アドレスが使用されていることが判明しました。 From」の値が問題の根本原因でした。 Bluehost を含むインターネット サービス プロバイダー (ISP) は、電子メールのなりすましを防ぐために、「差出人」値として外部電子メール アドレスの使用を制限するのが一般的です。その結果、ISP は「差出人」アドレスをデフォルト値で上書きしました。

回避策

この問題に対処し、返信を目的のアドレスにリダイレクトするには、次のようにします。代わりに「Reply-To」ヘッダーを使用することをお勧めします。さらに、以下に示すように、mail() 関数に 5 番目のパラメーターを追加できます。

mail($to,$subject,$message,$headers,"-f [email&#160;protected]");
ログイン後にコピー

このパラメーターは、「-f」オプションを指定します。これにより、多くの ISP で「From」ヘッダーを手動で設定できます。 .

以上がPHP mail() 関数の「From」ヘッダーが無視されるのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート