0

メーリングにdreamhostを使用しています。PHP メール関数の追加ヘッダー パラメータに問題があります。このコードは機能し、電子メールが送信されます。

$to = 'myemail@gmail.com';
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$headers = "From: $name <**webmaster@example.com**>\r\n" .
    "Reply-To: $name <**webmaster@example.com**>\r\n" .
    'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);

しかし、webmaster@example.com を変数 $email に置き換えると

$headers = "From: $name <**$email**>\r\n" .
    "Reply-To: $name <**$email**>\r\n" .
    'X-Mailer: PHP/' . phpversion();

メールが送信されません。私は print_r($_POST) を実行しましたが、要素はそこにあります。また、メール webmaster@example.com をフォームに入力して、送信されるかどうかを確認する別のテストも行いました。私の質問は、この問題を解決するにはどうすればよいかということです。ユーザーがメールアドレスをフォームに別のメール拡張子で入力すると、そのメールは送信されませんが、拡張子が @example.com の場合、メールは送信されます。 .

4

1 に答える 1

0

$name 変数は、完全な電子メール アドレスである必要があります。

"$name = " 'a name' email@whatever.com> "
$headers = "From: $from \r\n";

私のサーバーで動作します。メール アドレスの先頭に < を追加します。このシステムは、文字列を含めた場合、文字列をまったく表示しません。フォームに応答者の名前と電子メール アドレスの異なる変数がある場合、正しい形式で $name を取得するためにそれらを連結する必要があります。

于 2013-04-26T18:44:38.000 に答える