PHP для новичков: отправка email с сайта

Как PHP отправляет почту

PHP не отправляет почту напрямую. Он использует функции для передачи данных специальным службам и протоколам, отвечающим за отправку. Это означает, что PHP предоставляет необходимый функционал, но сам процесс отправки выполняется внешними службами.

Отправка письма: пример кода

В этом примере для демонстрации отправки письма используются переменные, а не форма.

Переменные письма

Создадим переменные для хранения информации о письме:

  • $message: текст сообщения (например, "Сообщение").
  • $to: адрес получателя (например, "odin@itiprager.com").
  • $from: адрес отправителя (например, "example@itiprager.com").
  • $subject: тема сообщения (например, "Тема сообщения").

Кодирование темы и заголовки

Тема сообщения кодируется в UTF-8 для поддержки кириллицы и латиницы:

$subject = "Тема сообщения";
$subject = "=?UTF-8?B?".base64_encode($subject)."?=";

Заголовки письма формируются в переменной $headers:

$headers = "From: ".$from."r\n".
           "Reply-to: ".$from."r\n".
           "Content-type: text/plain; charset=UTF-8r\n";

Заголовки содержат отправителя (From), адрес для ответа (Reply-to), тип сообщения (Content-type, простой текст) и кодировку (charset).

Отправка письма с помощью mail()

Для отправки письма используется функция mail():

mail($to, $subject, $message, $headers);

Функция mail() принимает четыре аргумента: адрес получателя, тему, тело сообщения и заголовки.

Тестирование

Тестирование отправки писем с локального сервера, как правило, не работает. Функция mail() корректно функционирует на удалённых серверах (после размещения сайта на хостинге).

В этом уроке описаны основы отправки почты в PHP. Код будет работать на удалённом сервере при правильных настройках и кодировках.

Что будем искать? Например,программа