Функция mail для PHP

  • 3 минут чтения

Функция mail для PHP

Если у Вас есть собственный интернет-портал и некое количество подписчиков, то Вы наверняка интересовались как сделать новостную рассылку напрямую из сайта. Или же создаете интернет-магазин и хотите отправлять клиентам информацию о регистрации и статусы заказов. Как бы то ни было, а функция mail для PHP именно то, что Вы ищете.

Что такое функция mail для PHP

Как можно догадаться из названия функции, mail – это функция, которая отвечает за отправку сообщений на электронную почту получателя. С помощью этой функции возможно передавать разные параметры в теле сообщения, например, статус регистрации пользователя на сайте или последние новости компании.

Функция автоматически отправляет сообщение получателю, но получатель не обязательно должен быть один. С помощью функции mail можно отправить один email сразу списку получателей из массива. При передаче сообщения функция возвращает значение true при удачном отправлении или false при неудаче.

Список параметров

Функция mail включает в себя следующий список используемых параметров:

  • to – кому требуется доставить сообщение;
  • subject – тема электронного сообщения;
  • message – «тело» сообщения;
  • additional_headers – информация, которая автоматически дописывается в конце сообщения;
  • additional_parameters – параметр, который передает дополнительные атрибуты в «теле» сообщения.

При этом параметры additional_headers и additional_parameters являются необязательными и используются по желанию.

Синтаксис

Общий синтаксис функции mail следующий:


bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]])

Параметр message при этом может иметь как одну строку, так и несколько. Для того чтобы передать больше одной строки в сообщение требуется добавить атрибут «\n». На практике в коде это выглядит следующим образом:


<?php
mail("Электронный адрес получателя", "Тема сообщения", "Текст сообщения \n Строка 2 \n Строка 3");
?>

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


<?php
mail("Электронный адрес получателя", "Тема сообщения", "Текст сообщения \n Строка 2 \n Строка 3", "От: адрес отправителя", "-f адрес отправителя");
?>

Последние 2 параметра отвечают за заголовок и дополнительная команда для веб-сервера, отвечающая за установку отправителя сообщения.

Важно! Для пользователей Windows-серверов если PHP-скрипт передает имейл напрямую на SMTP-сервер и в начале сообщения стоит точка, то она удалится если после неё не добавить ещё одну.

Функция mail для PHP

Пример использования

Простейший способ использования функции mail мы разобрали чуть выше в разделе «Синтаксис». Но на деле приходится работать с гораздо сложными примерами. Например, требуется отправить электронное письмо подписчикам с последними новостями компании. Скрипт будет выглядеть следующим образом:


<?php
$to = '[email protected], [email protected], [email protected], [email protected] ';
$subject = Новости недели';
$message = '
<html>
<head>
  <title>Новости недели компании «Сделай сам»</title>
</head>
<body>
  <p>Главные новости этой недели:</p>
  <div>Новость 1</div>
  <div>Новость 2</div>
  <div>Новость 3</div>
</body>
</html>';
$headers = [];
$headers[] = 'MIME-Version: 1.0' . "\r\n";
$headers[] = 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers[] = 'To: User1 <[email protected]>,User2 <[email protected]>,User3 <[email protected]>,User4 <[email protected]>';
$headers[] = 'From: News Company <[email protected]>';
$headers[] = 'Cc: [email protected]';
$headers[] = 'Bcc: [email protected]';
mail($to, $subject, $message, implode("\r\n", $headers));
?>

Теперь разберем этот пример. В первой строке php-скрипта перечисляем список имейлов получателей через кому. Дальше указываем тему и вносим «тело» сообщения для рассылки. В примере показан вариант простенькой html-страницы, но её можно заменить собственным. Далее для правильной отправки HTML-сообщения добавляем заголовок Content-type и дополнительные заголовки. В конце вызываем функцию mail и отправляем в неё всю информацию.

Вот такой незамысловатый код поможет в отправке не только сообщений клиентам, а и системных форм администраторам сайта типа функций «Обратный звонок» или «Заказ в 1 клик».