Форма отправки данных на почту с сайта html и php

Автор Макс Пуля

Форма отправки данных на почту с сайта html и php Форма отправки данных на почту с сайта html и php

Форма обратной связи или форма отправки заявки очень важна для сайта. Полностью рабочий код отправки данных на почту с сайта

В Интернете очень много подобных форм, но, мягко говоря, не все они рабочие. Трудно найти рабочий код отправки данных с сайта. Я нашел и немного его улучшил. Это только код! Стили Вам нужно будет подключить свои - это очень просто!

Первым делом Вам нужно создать пустой файл с именем send.php и не забывайте о кодировке, которую Вы используете. Удобнее всего использовать Notepad++ для работы с кодом.

В пустой файл send.php вставляете следующий код:

<?php

if(isset($_POST['submit'])){
$to = "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.;; // Здесь нужно написать e-mail, куда будут приходить письма
$from = $_POST['email']; // this is the sender's Email address
$first_name = $_POST['first_name'];
$subject = "Форма отправки сообщений с сайта";
$subject2 = "Copy of your form submission";
$message = $first_name . " оставил сообщение:" . "\n\n" . $_POST['message'];
$message2 = "Here is a copy of your message " . $first_name . "\n\n" . $_POST['message'];

$headers = "From:" . $from;
$headers2 = "From:" . $to;

mail($to,$subject,$message,$headers);
// mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender - Отключено!
echo "Сообщение отправлено. Спасибо Вам " . $first_name . ", мы скоро свяжемся с Вами.";
echo "<br /><br /><a href='">https://epicblog.net'>Вернуться на сайт.</a>";

}

?>

<!--Переадресация на главную страницу сайта, через 3 секунды-->
<script language="JavaScript">
function changeurl(){eval(self.location="https://epicblog.net/index.php");}
window.setTimeout("changeurl();",3000);
</script>

Отлично! Пол дела сделано!

Теперь Вам нужно ставить html код на свой сайт, чтобы форма обратной связи появилась. Вот этот код:

<form action="send.php" method="post">

Ваше имя <input type="text" name="first_name"><br>
Email: <input type="text" name="email" required placeholder="Обязательное поле"><br>
Сообщение:<br><textarea rows="5" name="message" cols="30"></textarea><br>
<input type="submit" name="submit" value="Submit">
</form>

Как видите, форма подключается к файлу send.php. По умолчанию файл send.php нужно поместить в корень Вашего сайта или прописать к нему другой путь.

Эта форма отправки данных полностью рабочая и проверена. В противном случае, нужно смотреть настройки хостинга.

Исходники формы отправки данных на почту с сайта html и php по этой прямой ссылке. Скачивайте и пользуйтесь на здоровье. Не забудьте изменить данные на свои!

Внимание!

У кого есть проблема с кодировкой (приходят кракозябры) в KOI8-R в почтовом клиенте Outlook, смотрите новую версию формы отправки писем на почту с решенной проблемой с кодировкой! Ну и вообще, новая версия более улучшенная!

Всем удачи и добра!

Макс Пуля

Макс Пуля

Приветствую! Присоединяйтесь к сообществу Epic Blog и выражайте свои мысли.

20 комментарии

  • Макс Пуля написал Макс Пуля

    Советую использовать Новую форму отправки https://epicblog.net/19-web-development/novaya-forma-otpravki-dannykh-na-pochtu-s-sajta-s-v-outlook-html-i-php.html
    В новой форме, чтобы добавить новое поле, в файле mail.php вот сюда:
    /* Указываем переменные, в которые будет записываться информация с формы */
    $first_name = $_POST['first_name'];
    $email = $_POST['email'];
    $phone = $_POST['phone'];
    $message = $_POST['message'];
    $subject = "Форма отправки сообщений с сайта Epic Blog";

    Добавляете новую переменную из html, например address (адрес), получится так:

    /* Указываем переменные, в которые будет записываться информация с формы */
    $first_name = $_POST['first_name'];
    $email = $_POST['email'];
    $phone = $_POST['phone'];
    $address = $_POST['address'];
    $message = $_POST['message'];
    $subject = "Форма отправки сообщений с сайта Epic Blog";

    Затем, эту переменную добавляете сюда:
    /* Переменная, которая будет отправлена на почту со значениями, вводимых в поля */
    $mail_to_myemail = "Здравствуйте!
    Было отправлено сообщение с сайта!
    Имя отправителя: $first_name
    E-mail: $email
    Номер телефона: $phone
    Текст сообщения: $message

    Получится следующее:
    /* Переменная, которая будет отправлена на почту со значениями, вводимых в поля */
    $mail_to_myemail = "Здравствуйте!
    Было отправлено сообщение с сайта!
    Имя отправителя: $first_name
    E-mail: $email
    Номер телефона: $phone
    Адрес отправителя: $address
    Текст сообщения: $message

    Ну и, конечно, нужно не забыть добавить в html код:

    Ваш адрес: input type="text" name="address"

  • игорь написал игорь

    Если я добавлю новые поля в форму ХТМЛ, как их правильно прописать в PHP

  • Безымянный написал Безымянный

    Здравствуйте, использую вашу форму, решил добавить IP адрес пользователя который вызвал обратную связь, в письмо. Нашел код IP-адрес:$REMOTE_ADDR , куда его вставлять?

  • Сергей написал Сергей

    Как сделать так, чтобы после отправки формы остаться на той же странице ?

  • Рома написал Рома

    Отлично работает!

  • Serg68 написал Serg68

    Не отправляет! какой адрес указывать в $from = ? И шрифт неправильный в сообщении отправлено.

  • Макс Пуля написал Макс Пуля

    Дорогие читатели! Специально для тех, у кого не приходят письма на почту - свежий архив с изменениями в строке $from - можно скачать по ссылке https://epicblog.net/download/form_new.zip
    Только что проверил, письма приходят! Пробуйте! Если нет - обращайтесь к своему хостеру с претензией =)

  • Ислам написал Ислам

    Не идут сообщения, уважаемый автор. Пробовал почты и яндекс и gmail… Пишет, что сообщение отправлено, что всем спасибо, однако, сообщения не идут

  • Макс Пуля написал Макс Пуля

    В панели управления хостингом Plesk письма приходят на почту не со всех ящиков. В файле send.php на 13 строке измените код $from = $_POST['email']; на $from = "ваш@мэйл.net";
    То есть, в этой панеле, в поле "От кого" подставляются не все электронный адреса. Хостеры не дали внятный ответ почему так происходит. И чтобы с письмом приходил адрес отправителя, нужно обновить код:
    $message = "ФИО посетителя: ". $first_name . " | Адрес электронной почты: " . $_POST['email'] . " | Комментарий: " . $_POST['message'];

  • андрей написал андрей

    Не приходят письма на почту