С появлением форм обратной связи, гостевых книг, отзывов, форумов и т.д. Появилась потребность отслеживать, когда пользователь ввел, что-то в форму и оставил Вам сообщении. Согласитесь, что не удобно проверять вручную сообщения не зная заранее есть ли оно или нет. Для выхода из этой ситуации нам помогут почтовые сервисы такие как mail.ru, yandex.ru и другие. Возникает вопрос, как связать свой сайт, а точнее форму обратной связи с почтой, чтобы сообщение уходило на почту и Вы могли оперативно реагировать на сообщения с сайта.
Для решения данной задачи нам поможет маленький, но очень шустрый скрипт, который будет отправлять нам сообщения на почту о том, что нам оставили сообщение. В основе скрипта лежит PHP функция
Мы не будем здесь рассматривать отправку письма с вложением, нас интересует только отчет о поступившем сообщении с сайта. Для того чтобы отправить письмо нам нужно три параметра, а именно: отправитель, получатель и сам текст письма. Тело письма мы будем отправлять в HTML разметки. Чтобы почтовый сервер понимал, что мы хотим в теле письма отправить HTML нужно указать Content-type в заголовках почтового сервера.
<?php
/**
* Файл с пользовательскими функциями
* Site: https://bezramok-tlt.ru
* Регистрация пользователя письмом
*/
// Устанавливаем константы
//Адрес почты кому отправляем
define('KAS_MAIL_TO','Администратору <*****@yandex.ru>');
//Адрес почты от кого отправляем
define('KAS_MAIL_AUTOR','Робот доставки <no-reply@bezramok-tlt.ru>');
/**Отпровляем сообщение на почту
* @param string $to - Кому
* @param string $from - От кого
* @param string $title - Заголовок письма
* @param string $message - Тело письма
*/
function sendMail($to, $from, $title, $message)
{
//Формируем заголовок письма
$subject = $title;
$subject = '=?utf-8?b?'. base64_encode($subject) .'?=';
/*Формируем заголовки для почтового сервера,
Говорим серверу что используем HTML*/
$headers = "Content-type: text/html; charset=\"utf-8\"\r\n";
$headers .= "From: ". $from ."\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Date: ". date('D, d M Y h:i:s O') ."\r\n";
//Отправляем данные на ящик
if(!mail($to, $subject, $message, $headers))
return 'Ошибка отправки письма!';
else
return true;
}
//Формируем заголовок письма
$title = 'Ура нам письмо пришло!';
//Формируем HTML верстку письма для отправки
$msg = '<h1>Ура нам письмо пришло!</h1><br />
<p>Это письмо создано автоматически, отвечать на него не нужно!</p>';
//Вызываем функцию отправки письма
if(sendMail(KAS_MAIL_TO, KAS_MAIL_AUTOR, $title, $msg))
echo 'Письмо отправленно...'
?>
Вот такой простой скрипт php отправки письма. Вам нужно вызывать данную функцию в обработчике вашей формы в случае если форма прошла валидацию.
05/12/2016 19:33:47
05/12/2016 18:51:06