Отправка сообщений электронной почты очень распространенная функция у сайтов и веб-приложений. Например, вы можете отправить приветственное сообщение по электронной почте, когда пользователь создает учетную запись на вашем веб-сайте или получить отзывы или комментарии через контактную форму на веб-сайте.
Вы можете использовать встроенную в PHP-функцию mail()
для динамического создания и отправки сообщений электронной почты одному или нескольким получателям из вашего PHP-приложения либо в текстовой форме, либо в формате HTML. Базовый синтаксис этой функции может быть задан следующим образом:
mail(to, subject, message, headers, parameters)
В следующей таблице приведены параметры этой функции.
Параметр | Описание |
---|---|
Обязательно — следующие параметры обязательны | |
to |
Электронный адрес получателя. |
subject |
Тема отправляемого электронного письма. Этот параметр, т.е. строка темы не может содержать символ новой строки (\n ). |
message |
Определяет сообщение для отправки. Каждую строку следует разделять символом перевода строки-LF (\n ). Строки не должны превышать 70 символов. |
Опционально — следующие параметры являются необязательными | |
headers |
Обычно это используется для добавления дополнительных заголовков, таких как «От», «Копия», «Скрытая копия». Дополнительные заголовки следует разделять символом возврата каретки и символа перевода строки — CRLF. (\r\n ). |
parameters |
Используется для передачи дополнительных параметров. |
Отправка электронных писем с обычным текстом
Самый простой способ отправить электронное письмо с помощью PHP — отправить текстовое письмо. В приведенном ниже примере мы сначала объявляем переменные — адрес электронной почты получателя, строку темы и тело сообщения — затем мы передаем эти переменные функции mail()
для отправки электронного письма.
<?php
$to = 'maryjane@email.com';
$subject = 'Marriage Proposal';
$message = 'Hi Jane, will you marry me?';
$from = 'peterparker@email.com';
// Отправляем письмо
if(mail($to, $subject, $message)){
echo 'Your mail has been sent successfully.';
} else{
echo 'Unable to send email. Please try again.';
}
?>
Отправка электронных писем в формате HTML
Когда вы отправляете текстовое сообщение с помощью PHP, все содержимое будет рассматриваться как простой текст. Мы собираемся улучшить этот вывод и превратить электронное письмо в электронное письмо в формате HTML.
Чтобы отправить электронное письмо в формате HTML, процесс будет таким же. Однако на этот раз нам нужно предоставить дополнительные заголовки, а также сообщение в формате HTML.
<?php
$to = 'maryjane@email.com';
$subject = 'Marriage Proposal';
$from = 'peterparker@email.com';
// Для отправки HTML-почты необходимо установить заголовок Content-type.
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Создаем заголовки писем
$headers .= 'From: '.$from."\r\n".
'Reply-To: '.$from."\r\n" .
'X-Mailer: PHP/' . phpversion();
// Составляем простое сообщение электронной почты в формате HTML
$message = '<html><body>';
$message .= '<h1 style="color:#f40;">Hi Jane!</h1>';
$message .= '<p style="color:#080;font-size:18px;">Will you marry me?</p>';
$message .= '</body></html>';
// Отправляем письмо
if(mail($to, $subject, $message, $headers)){
echo 'Your mail has been sent successfully.';
} else{
echo 'Unable to send email. Please try again.';
}
?>
PHP-функция mail()
является частью ядра PHP, но вам необходимо настроить почтовый сервер на своем компьютере, чтобы она работала. Как правило на хостинге уже все работает по умолчанию, если нет — обращайтесь в службу поддержки.
В следующих двух главах (Обработка форм в PHP и Проверка форм в PHP) вы узнаете, как реализовать на своем веб-сайте интерактивную контактную форму, чтобы получать комментарии и отзывы пользователей по электронной почте с помощью этой PHP-функции.