Итак, я недавно разработал контактную форму php для партийных запросов.
Форма отправляет один запрос на веб-сайт и одно подтверждение лицу, которое заполняет форму.
В Gmail кажется, что оба письма отправляются правильно. Однако, если вы заполните форму электронной почтой Yahoo, она отправит только подтверждение. Не просьба. Это явно проблематично. Поэтому я пытаюсь понять, почему.
Мой php выглядит следующим образом:
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$guests = $_POST['guests'];
$type = $_POST['type'];
$month = $_POST['month'];
$day = $_POST['day'];
$year = $_POST['year'];
$message = $_POST['message'];
$formcontent="msg";
$comfirmcontent="msg";
$fromname="mydomain.com";
$fromemail="[email protected]";
$confirmheader=
'From: "' . $fromname . '" <' . $fromemail . '>' . "\r\n" .
'Reply-To: "' . $fromname . '" <' . $fromemail . '>' . "\r\n" .
'X-Mailer: PHP v' . phpversion();
$recipient = "[email protected]";
$subject = "Contact From Website";
$mailheader = "From: $email";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
mail($email, $confirmsubject, $comfirmcontent, $confirmheader) or die("Error!");
header('Location: party-form-thank-you.html')
Так что это письмо не отправлено от Yahoo:
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
Но этот:
mail($email, $confirmsubject, $comfirmcontent, $confirmheader) or die("Error!");
Я думал, что это может быть потому, что
'X-Mailer: PHP v' . phpversion();
было определено в электронном письме с подтверждением, поэтому я попытался записать это в $ mailheader
$mailheader = "From: $email" . "\r\n" .
'X-Mailer: PHP v' . phpversion();
…Не работал.
Поэтому я прошу вас всех моих друзей по программированию о том, почему.
ТИА
@kaiqing
Вы были правы, так как переменные были определены как одинаковые с другим именем, я думаю, что у Yahoo возникла проблема,
Я переписал это так:
$name = $_POST['name'];
$email = $_POST['email'];
$fromname="BOULETTESLARDER.COM";
$recipient = "[email protected]";
$subject = "Contact From Website";
$mailheader = 'From: "' . $name . '" <' . $email . '>' . "\r\n" .
'X-Mailer: PHP v' . phpversion();
$confirmheader=
'From: "' . $fromname . '" <' . $recipient . '>' . "\r\n" .
'Reply-To: "' . $fromname . '" <' . $recipient . '>' . "\r\n" .
'X-Mailer: PHP v' . phpversion();
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
mail($email, $confirmsubject, $comfirmcontent, $confirmheader) or die("Error!");
Теперь он отправит и отправит оба письма на сайт & пользователю — если у пользователя, заполняющего форму, есть адрес Yahoo.
Других решений пока нет …