ユーザーが自分のサイトのフォームに自分のメールアドレスを入力すると、自分の情報が記載されたメールが届きます。そのメールに返信して、「To:」にメールの自動入力をしたいのですが、問題があります。私はこの質問を見つけて解決策を試しました:reply-to address in php contact formしかし、それは私のために働いていない、と私はなぜわからない。まとめPHPでの返信メールのエラー
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
$to = '[email protected]';
$headers = "BCC: [email protected]\r\n";
$headers .= 'Reply-To: ' . $email . "\r\n";
$subject = '*** Quote Request';
$name = $_POST['name'];
$phone = $_POST['phone'];
$date = $_POST['date'];
$time = $_POST['time'];
$pickup = $_POST['pickup'];
$dropoff = $_POST['dropoff'];
$passengers = $_POST['passengers'];
$service = $_POST['service'];
$email = $_POST['email'];
$message = <<<EMAIL
Quote submission from: $name
Name: $name
Phone Number: $phone
Date: $date
Time: $time
Pickup Location: $pickup
Drop Off Location: $dropoff
Total Passengers: $passengers
Service needed: $service
Email: $email
EMAIL;
if($_POST) {
mail($to, $subject, $message, $headers);
}
header('Location: thankyou.html');
exit();
?>
そして、これは私が取得していますエラーメッセージです、::ここで
は私のPHPで
未定義の変数:/contact-form-handler.php上で電子メールを行9警告:ヘッダー情報を変更することはできません - すでに送信されたヘッダー(/contact-form-handler.php:9からの出力)は/contact-form-handler.phpの44行目で変更できません。
oblemは変数$email
です。私がReply-Toを置いて電子メールを指定すると動作します。ヘッダー内で変数を定義した後に変数が定義されている可能性がありますが、その変数を下部に追加すると機能しない可能性があります。私はPHPを使った新人だから、なぜこの変数がうまくいかないのか分かりません。
私も試してみました:
$headers = "BCC: [email protected]\r\n" .
'Reply-To: ' . $email . "\r\n" .
'X-Mailer: PHP/' . phpversion();
任意の助けをいただければ幸いです!
e?通常、変数を使用する前に変数を使用することはできません。 –
[PHP: "Notice:未定義変数"と "Notice:未定義インデックス"](http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index)の可能な複製 – chris85
これまでに何度も言われてきたことですが、内部的なPHPの 'mail'関数を使用しないでください。なぜなら、多くの制限を課し定期的に問題を引き起こすsendmailのようなMTAのラッパーだけです。代わりに 'PHPMailer'(https://github.com/PHPMailer/PHPMailer)や' SwiftMailer'(https://github.com/swiftmailer/swiftmailer)のような実証済みのソリューションを通してSMTPを使用してください。 – brezanac