PHP メールの「From」ヘッダーの問題
ユーザーの機能を強化するために、ユーザーに自動的にメールを送信する Web サイトが開発されました。登録。このタスクに使用される PHP コードの詳細を以下に示します。
<?php $to = "[email protected]"; $subject = "Test mail"; $message = "Hello! \nThis is a simple email message."; $headers = "From: [email protected]"; $headers .= "\r\nReply-To: [email 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 protected]");
このパラメーターは、「-f」オプションを指定します。これにより、多くの ISP で「From」ヘッダーを手動で設定できます。 .
以上がPHP mail() 関数の「From」ヘッダーが無視されるのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。