Я сделал «сырой» контакт с контактной формой PHP год назад, много раз проверял, он работал. Он должен просто отправить электронное письмо в учетную запись Gmail с предоставленным адресом электронной почты или параметрами контактной информации, включенными в тело электронной почты.Contact form handler вдруг не отправляет письма в Gmail
Теперь на редизайне я вернулся в контактную форму, проверил ее случайным образом и ничего не отправил. Нет сообщений об ошибках, представленная форма никогда не приходит в основной почтовый ящик Gmail, в отличие от нее.
<?php
$errors = '';
$myemail = '[email protected]';
$noreply = '[email protected]';
if (empty($_POST['email']))
{
$errors .= "\n Error: Please provide an e-mail address where we can send the newsletter and special deals";
}
$email_address = $_POST['email'];
if (!preg_match(
"/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i",
$email_address))
{
$errors .= "\n Error: Invalid email address";
}
if (empty($errors))
{
$to = $myemail;
$email_subject = "Contact form submission: $email_address";
$email_body = "You have received a newsletter signup. ".
"Email: $email_address";
$headers = "From: $noreply\n";
$headers .= "Reply-To: $email_address";
mail($to,$email_subject,$email_body,$headers);
//redirect to the 'thank you' page
header('Location: newsletter_submit.html');
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Contact form handler</title>
</head>
<body>
<!-- This page is displayed only if there is some error -->
<?php
echo nl2br($errors);
?>
</body>
</html>
Это случилось с другой подобной формы на этом сайте, мне интересно, если что-то не так с кодом (Althought он работал один раз) или Gmail-то изменилось. Я пробовал использовать белый почтовый ящик формы, но ничего не изменилось.
Возможно, ваша система не настроена для отображения ошибок. Добавьте отчет об ошибках в начало вашего файла (ов) сразу после открытия PHP-тега , например ' Php error_reporting (E_ALL); ini_set ('display_errors', 1); 'тогда остальная часть вашего кода, чтобы убедиться, что он что-то дает. Кроме того, ваш сервер, возможно, был внесен в черный список. –
Кроме того, замените 'mail ($ to, $ email_subject, $ email_body, $ headers);' с 'if (mail ($ to, $ email_subject, $ email_body, $ headers)) {echo" mail sent "; } else {echo "error, проверьте ваши журналы"; } '- Если вы видите« отправленное письмо », PHP/server выполнил свою работу. То, что происходит после этого, находится вне вашего контроля. –
Возможно, вам стоит проверить, не занесен ли ваш сервер ** в черный список ** для отправки спама, возможно, если вы используете ** общий хостинг ** – dvhh