(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
mb_send_mail — Отправляет закодированное электронное письмо
$to
,$subject
,$message
,$additional_headers
= [],$additional_params
= null
Отправляет сообщение электронной почты. Заголовки и сообщения преобразовываются и кодируются в соответствии с настройкой функции 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
можно передавать массив.
|