私のフォームは意図したとおりに動作していますが、何らかの理由でメールが私のメールアカウントに送信されるだけで、他のメールアカウントには送信されません。私がどこに間違っているのかを見るためには、$ emailを使って2番目の電子メールがどこに行くのかという電子メールアドレスを取得していると仮定していると仮定します。ここで私のPHPはどこですか?複数の人にフォームメールを送信するPHP?
<?php
$from = 'Pixel Wars - Press Inquiry';
$to = "[email protected], $email";
$subject = 'Press Inquiry from Pixelwars.com';
function errorHandler ($message) {
die(json_encode(array(
'type' => 'error',
'response' => $message
)));
}
function successHandler ($message) {
die(json_encode(array(
'type' => 'success',
'response' => $message
)));
}
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$body = "Name: $name\r\n Email: $email\r\n\r\n Message:\r\n $message";
$pattern = '/[\r\n]|Content-Type:|Bcc:|Cc:/i';
if (preg_match($pattern, $name) || preg_match($pattern, $email) || preg_match($pattern, $message)) {
errorHandler('Header injection detected.');
}
// Check if name has been entered
if (!$_POST['name']) {
errorHandler('Please enter your name.');
}
// Check if email has been entered and is valid
if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
errorHandler('Please enter a valid email address.');
}
// Check if message has been entered
if (!$_POST['message']) {
errorHandler('Please enter your message.');
}
// prepare headers
$headers = 'MIME-Version: 1.1' . PHP_EOL;
$headers .= 'Content-type: text/plain; charset=utf-8' . PHP_EOL;
$headers .= "From: $name <$email>" . PHP_EOL;
$headers .= "Return-Path: $to" . PHP_EOL;
$headers .= "Reply-To: $email" . PHP_EOL;
$headers .= "X-Mailer: PHP/". phpversion() . PHP_EOL;
// send the email
$result = @mail($to, $subject, $body . "\r\n\n" .'------------------ '. "\r\n\n" .'Hello '.$name.' we will contact you as soon as possible about your query.' ."\n". 'Dont forget to keep visiting www.pixelwars.com for more updates and awesome content.' ."\n". 'We will email you back on the provided email below, thank you and have a nice day.' . "\r\n\n" .'-- '.$email, $headers);
if ($result) {
successHandler('Thank You! we will be in touch');
} else {
errorHandler('Sorry there was an error sending your message.');
}
} else {
errorHandler('Allowed only XMLHttpRequest.');
}
?>
、誰もがそれを
の可能性のある重複した[PHPは、複数の電子メールアドレスにメールを送信](http://stackoverflow.com/questions/4506078/php-send-mail-to-multiple-email-addresses) –
@JamesHunt私はそれが重複しているとは思わない - OPは構文があるが、正しくはない - あなたの参照されている問題は、要件に合ったコードを作成する方法に関する質問である。 –
あなたの問題は、@ chris85が述べたように、 '$ email'変数は存在しないと思います。これらの3つの宣言を文書の先頭に移動してみてください。 –