mb_send_mail

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_send_mailОтправляет закодированное электронное письмо

Описание

mb_send_mail(
    string $to,
    string $subject,
    string $message,
    array|string $additional_headers = [],
    ?string $additional_params = null
): bool

Отправляет сообщение электронной почты. Заголовки и сообщения преобразовываются и кодируются в соответствии с настройкой функции mb_language(). Это функция-обёртка для функции mail(), так что можно почитать и описание функции mail().

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

to

Электронные адреса получателей. Несколько адресов в аргументе to перечисляются через запятую. Значение этого аргумента не кодируется автоматически.

subject

Тема письма.

message

Текст письма.

additional_headers (необязательный)

Строка или массив, которые будут вставлены в конец заголовка письма.

Обычно указывают, чтобы добавить дополнительные заголовки (From, Cc, и Bcc). Несколько дополнительных заголовков должны разделяться символом CRLF (\r\n). Этот параметр нужно проверить, чтобы злоумышленники не могли внедрить нежелательные заголовки.

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

Замечание:

При отправке письма оно обязано содержать заголовок From. Его можно задать в параметре additional_headers или через опцию в php.ini.

Если этого не сделать, то это приведёт к сообщение об ошибке, примерно такого содержания: Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing. Заголовок From также устанавливает и заголовок Return-Path в Windows.

Замечание:

Если письмо не было доставлено, попробуют указать только символ LF (\n). Есть почтовые агенты Unix (особенно » qmail), которые автоматически заменяют символ LF на символ CRLF (что дублирует символ CR при заданном символе CRLF). Это единственное решение, так как это поведение не соответствует стандарту » RFC 2822.

additional_params

Параметр additional_params — это параметр командной строки MTA. Он полезен для задания корректного заголовка Return-Path при использовании функции sendmail.

Этот параметр экранируется функцией escapeshellcmd() автоматически, чтобы предотвратить запуск других команд. Функция escapeshellcmd() не даёт запускать команды, но допускает добавление дополнительных аргументов, поэтому нужно проверять эту опцию, чтобы обеспечить безопасность.

Поскольку функция escapeshellcmd() выполняется автоматически, нельзя использовать ряд символов, которые разрешены в email-адресах. Нельзя использовать функцию mail() для программ, которые требуют указания таких символов.

Пользователь, от имени которого запущен веб-сервер, должен быть добавлен в список доверенных пользователей в конфигурации почтового агента sendmail, чтобы предотвратить добавление заголовка X-Warning в сообщение, если отправитель письма задан параметром (-f). Для пользователей агента sendmail — это файл /etc/mail/trusted-users.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false, если возникла ошибка.

Список изменений

8.0.0 Теперь параметр additional_params может принимать значение null.
Версия Описание
7.2.0 Теперь в параметр additional_headers можно передавать массив.

Смотрите также

  • mail() - Отправляет электронную почту
  • mb_encode_mimeheader() - Кодирует строку для MIME-заголовка
  • mb_language() - Устанавливает или получает текущий язык