Как правильно отправлять сообщения с помощью php mail()

Как правильно отправлять сообщения с помощью php mail()

525

Отправка сообщений является важной составляющей любого сайта. Данная возможность реализуется функцией php mail(), которая должна обрабатываться всеми нормальными хостингами.

Если говорить просто, то синтаксис mail() не сложный. Он выглядит так:

mail($to, $subject, $message, [$dopheaders] );
$to - получатель письма (кому отправляем письмо)
$subject - тема письма
$message - сообщение
[$dopheaders] - дополнительные параметры и заголовки, которые можно передавать в сообщении. Это не обязательный параметр.

Если у вас есть какая-нибудь страничка index.php в сети, то можете проверить обрабатывает ли ваш хостинг php mail() функцию. Для этого вставьте в свой файл код ниже и запустите его (не забудьте поменять testorrdemo@mail.ru на свой ящик).

<?php
if(mail("testorrdemo@mail.ru", "My Subject", "Line 1\nLine 2\nLine 3")) echo "message send";
else echo "message not send";
?>

Если на вашу почту придет сообщение и скрипт выдаст "message send", то функция php mail() работает.

Теперь давайте создадим более сложный код для отправки сообщений:

<?php
$to = "testorrdemo@mail.ru";
$subject = "Письмо с вашего сайта!";
$charset = "utf-8";
$headerss ="Content-type: text/html; charset=$charset\r\n";
$headerss.="Date: ".date('D, d M Y h:i:s')."\r\n";
$headerss.="From: Тест <no-reply@vash-sait.ru>\r\n";
$msg = "Сообщение";
mail($to, $subject, $msg, $headerss);
?>

Если с переменными $to и $subject все понятно, то в $headerss мы добавляем жизненно необходимые параметры для письма. Например:
- Content-type: text/html - указывает на то, что теперь мы сможем в сообщение добавлять html теги, а charset=$charset - устанавливает кодировку письма в utf-8
- Date - вставляет дату в тело письма
- From - от кого письмо. Тест - имя отправителя, а запись <no-reply@vash-sait.ru> указывает email отправителя - желательно указывайте домен сайта

Некоторые почтовые сервисы не однозначно относятся к полю From, поэтому его можно и вовсе удалить, тогда подставятся значения от хостинга.

Также можно указать кому отвечать на письмо, даже если From не существует с помощью строки $headerss.="Reply-To: newtestorrdemo@mail.ru\r\n";

В этом случае, если пользователь нажмет "Ответить", то ответ вы получите на email в поле "Reply-To".

| | Как правильно отправлять сообщения с помощью php mail() | Отправка сообщений является важной составляющей любого сайта. Данная возможность реализуется функцией php mail(), которая должна обрабатываться всеми | http://blogprogram.ru/wp-content/uploads/2016/12/525-131x131.jpg