Отправка данных формы на Email

19.06.2016

Напишем простую форму отправки данных на email с помощью PHP функции mail(). Наша форма также будет записывать данные в файл на сервере. Код не привязан к каким либо CMS и может использован где угодно.

Непосредственно код:

<?php 
if(isset($_POST['spam']) && isset($_POST['submit']) && !$_POST['spam']){

	//дата отправки
	$date = date('d-m-Y H:i');
	//значение из поля name, ограничим в 100 символов
	$field_name = substr(htmlspecialchars(trim($_POST['name'])), 0, 100);
	//значение поля message, ограничим в 1000 символов
	$field_message = substr(htmlspecialchars(trim($_POST['message'])), 0, 1000);

	$to = "user@example.com"; //кому 
	$subject = "Данные с формы обратной связи"; //тема письма
	//текст письма
	$msg = "Имя: $field_name 
	\nСообщение: $field_message";

	$headers = 'From: webmaster@example.com'; //от кого

	mail($to, $subject, $msg, $headers);//отправляем письмо

	//сформируем строку для записи в файл на сервере
	$file_msg = "$date Имя: $field_name; Сообщение: $field_message;\n";

	//записуем данные в файл
	file_put_contents(__DIR__ . '/mail.txt', $file_msg, FILE_APPEND); 

	echo '<p>Спасибо за ваше сообщение</p>';
}

?>
<form method="post" action="">
	<input type="text" name="name" placeholder="Имя*" required>
	<textarea name="message" placeholder="Сообщение*" required></textarea>
	<input type="hidden" name="spam" value="">
	<input type="submit" value="Отправить" name="submit">
</form>

Отправляем письмо на user@example.com. Отправитель webmaster@example.com. Значение "от кого" желательно указывать почтовый ящик с текущего домена. Данные записываем в файл mail.txt на всякий случай. Поля в форме сделали обязательными с помощью атрибута required. Поле spam обеспечит защиту от спам-ботов. Обработчик формы по текущему адресу. После успешной отправки выводим сообщение благодарности. Пример формы demo.wolfweb.com.ua

Leave a Reply

*

code