Не работает форма обратной связи

12
S_A_N_T_A
На сайте с 23.11.2009
Offline
154
2402

Здравствуйте! Нашел подходящий скрипт без перезагрузки и без JS. Но письма почему то не приходят. Никак не разберусь в чем дело. В php не силен.

Это лучшая форма, что я видел. Голый html и php. Только починить бы её =(

ФАЙЛ INDEX.PHP

<?php

session_start();

require_once("config.php");

if ($_POST['act']== "y")

{

if (isset($_POST['posName']) && $_POST['posName'] == "")

{

$statusError = "$errors_name";

}

elseif (isset($_POST['posEmail']) && $_POST['posEmail'] == "")

{

$statusError = "$errors_mailfrom";

}

elseif(isset($_POST['posEmail']) && !preg_match("/^([a-z,._,0-9])+@([a-z,._,0-9])+(.([a-z])+)+$/", $_POST['posEmail']))

{

$statusError = "$errors_incorrect";

unset($_POST['posEmail']);

}

elseif (isset($_POST['posRegard']) && $_POST['posRegard'] == "")

{

$statusError = "$errors_subject";

}

elseif (isset($_POST['posText']) && $_POST['posText'] == "")

{

$statusError = "$errors_message";

}

elseif (!empty($_POST))

{

//заголовок для нас

$sendfrom = "sitename.ru";

$headers = "MIME-Version: 1.0\r\n";

$headers .= "Content-Type: text/html;charset=utf-8 \r\n";

$headers .= "Date: ".date("Y-m-d (H:i:s)",time())."\r\n";

$headers .= "From: " . strip_tags($sendfrom) . "\r\n";

$headers .= "X-Mailer: My Send E-mail\r\n";

$mess = "<b>Сайт:</b> Мебельный салон Волна <br><b>Имя пославшего:</b> $name <br><b>Телефон:</b> $tel <br><b>E-mail:</b> $email<br><b>Вопрос:</b> $ques";

mail($mailto,$subject,$mess,$headers);//отправляем сообщение нам

//unset($name, $posText, $mailto, $subject, $posRegard, $message);

$statusSuccess = "$send";

}

}

?>

<html>

<head>

<title>Обратная связь</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<link href="styling.css" rel="stylesheet" type="text/css" media='screen,projection' />

</head>

<body>

<h2>Заполните форму,<br> и мы обязательно свяжемся с вами!</h2>

<p id="emailSuccess">

<strong style="color:green;"><?php echo "$statusSuccess" ?></strong>

</p>

<p id="emailError"><strong style="color:red;"><?php echo "$statusError" ?></strong></p>

<div id="contactFormArea">

<form action="./" method="post" id="cForm">

<input type="hidden" name="act" value="y" />

<fieldset>

<label for="posName"><b>Ваше имя:</b></label>

<input class="text" type="text" size="25" name="posName" id="posName" required/>

<label for="posEmail"><b>Ваш E-mail:</b></label>

<input class="text" type="email" size="25" name="posEmail" id="posEmail" required/>

<label for="posRegard"><b>Ваш телефон:</b></label>

<input class="text" type="text" size="25" name="posRegard" id="posRegard" required/>

<label for="posText"><b>Ваш вопрос:</b></label>

<textarea cols="50" rows="20" name="posText" id="posText"></textarea>

<br><br><label><input class="submit" type="submit" name="selfCC" id="selfCC" value=" Отправить " /></label>

</fieldset>

</form>

</div>

</body>

</html>

ФАЙЛ CONFIG.PHP

<?php

$mailto = "pochta@yandex.ru";

$charset = "utf-8, windows-1251";

$subject = "Обратная связь";

$content = "text/plain";

$name = $_POST['posName'];

$email = $_POST['posEmail'];

$tel = $_POST['posRegard'];

$ques = $_POST['posText'];

$statusError = "";

$statusSuccess = "";

$errors_name = 'Введите ваше имя';

$errors_mailfrom = 'Введите свой E-mail адрес';

$errors_incorrect = 'Заполните правильно Ваш E-mail адрес';

$errors_message = 'Наберите текст вашего сообщения';

$send = 'Ваша заявка отправлена';

?>

S
На сайте с 30.09.2016
Offline
469
#1

Адрес отправителя должен быть валидным адресом e-mail. А у Вас

$sendfrom = "sitename.ru";
И офомляйте код с помощью кнопочки #, читать невозможно.
Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
S_A_N_T_A
На сайте с 23.11.2009
Offline
154
#2
Sitealert:
Адрес отправителя должен быть валидным адресом e-mail. А у Вас
$sendfrom = "sitename.ru";
И офомляйте код с помощью кнопочки #, читать невозможно.

Вместо sitename.ru указал свой email - все равно не приходят =(

---------- Добавлено 26.04.2019 в 10:21 ----------

Почта Яндекс

S
На сайте с 30.09.2016
Offline
469
#3
S_A_N_T_A:
Вместо sitename.ru указал свой email - все равно не приходят =(
Почта Яндекс

В нынешних реалиях суровой борьбы со спамом отправка почты всё чаще превращается в искусство. Очень много факторов, которые на это могут повлиять. Попробуйте отправить почту от имени реального адреса, находящегося на том же домене, что и сайт. Если не получится - тогда требуется подробное изучение проблемы.

S_A_N_T_A
На сайте с 23.11.2009
Offline
154
#4
Sitealert:
В нынешних реалиях суровой борьбы со спамом отправка почты всё чаще превращается в искусство. Очень много факторов, которые на это могут повлиять. Попробуйте отправить почту от имени реального адреса, находящегося на том же домене, что и сайт. Если не получится - тогда требуется подробное изучение проблемы.

Так и делаю. Использую реальный адрес находящийся на том же домене.

M
На сайте с 04.12.2013
Offline
223
#5
S_A_N_T_A:
Это лучшая форма, что я видел. Голый html и php. Только починить бы её =(

Код, мягко говоря, так себе.

---------- Добавлено 26.04.2019 в 12:07 ----------

S_A_N_T_A:
Так и делаю. Использую реальный адрес находящийся на том же домене.
Еще бы быть уверенным, что вы понимаете, что значит реальный адрес. Создан ли такой ящик на данной хостинг-площадке?
Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
S_A_N_T_A
На сайте с 23.11.2009
Offline
154
#6
miketomlin:
Код, мягко говоря, так себе.

---------- Добавлено 26.04.2019 в 12:07 ----------

Еще бы быть уверенным, что вы понимаете, что значит реальный адрес. Создан ли такой ящик на данной хостинг-площадке?

название@имя-домена-на-котором-находится-форма.ru

Но почта работает через Яндекс.

Что то не так?

---------- Добавлено 26.04.2019 в 12:42 ----------

Как быть? =(

M
На сайте с 04.12.2013
Offline
223
#7
S_A_N_T_A:
Но почта работает через Яндекс.

В смысле Яндекс.Коннект?

Создать одноименный фантомный ящик на хостинг-площадке (это делается на всяк. случай для «выпуска» отправляемых программно писем). В SPF-записи почтового домена объединить Яшины и свои адреса почтовых серверов. При необходимости добавить свою DKIM-запись и т.п.

---------- Добавлено 26.04.2019 в 14:19 ----------

pochta@yandex.ru
Надеюсь, в адресе получателя действительно используется Яшин домен. Иначе отправляемые программно письма могут скидываться в фантомный ящик по локалке.
LEOnidUKG
На сайте с 25.11.2006
Online
1723
#8

1. Создаёте почту настоящую на своём домене

2. Берёте вот это:

https://github.com/PHPMailer/PHPMailer

3. Подключаетесь по SMTP к скрипту и он отправляет почту через ваш почтовый сервер.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
S_A_N_T_A
На сайте с 23.11.2009
Offline
154
#9

miketomlin Да

Возможно проблема как раз в этом?

***

1) Если вы хотите отправлять письма не только с серверов Яндекса, укажите дополнительные серверы в таком формате: «v=spf1 ip4:IP-1 ip4:IP-2 ip4:IP-3 include:_spf.yandex.net ~all». Где IP-1, IP-2, IP-3 — IP-адреса дополнительных серверов.

Укажите «@» в поле для заполнения имени или хоста, если такое поле присутствует.

В некоторых панелях управления вместо «@» требуется указать имя вашего домена (например, «yourdomain.com.»). Если вам не удается указать ни «@», ни имя домена, оставьте это поле пустым.

У меня сейчас вот так v=spf1 redirect=_spf.yandex.net

***

2) Вы можете установить DKIM-подпись для писем, отправляемых с вашего домена: достаточно создать для вашего домена TXT-запись с публичным ключом подписи. Чтобы подписывать письма, которые вы отправляете не через серверы Яндекса, необходима также TXT-запись с секретным ключом. Настраивать её нужно на том сервере, с помощью которого производится отправление писем.

Оно? ))

gribbo
На сайте с 01.03.2012
Offline
66
#10

вот пример проще

Мой выбор хостинга (https://beget.com/p461662) \ Создаю сайты (/ru/forum/1009089)
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий