mb_send_mail

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

mb_send_mailОтправка закодированного сообщения

Описание

mb_send_mail ( string $to , string $subject , string $message , array|string $additional_headers = [] , string|null $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() - Устанавливает/получает текущий язык