## Настройка во время выполнения

Поведение функций зависит от установок в файле php.ini.

Конфигурационные опции отправки писем
Имя | По умолчанию | Место изменения | Список изменений
--- | --- | --- | ---
mail.add_x_header | "0" | `INI_PERDIR` |
mail.mixed_lf_and_crlf | "0" | `INI_SYSTEM`|`INI_PERDIR` | Опцию добавили в PHP 8.2.4
mail.log | NULL | `INI_SYSTEM`|`INI_PERDIR` |
mail.force_extra_parameters | NULL | `INI_SYSTEM`|`INI_PERDIR` |
SMTP | "localhost" | `INI_ALL` |
smtp_port | "25" | `INI_ALL` |
sendmail_from | NULL | `INI_ALL` |
sendmail_path | "/usr/sbin/sendmail -t -i" | `INI_SYSTEM` |

Дополнительную информацию и определения режимов INI_* даёт раздел «Места установки параметров конфигурации».

Краткое разъяснение конфигурационных директив.

`mail.add_x_header` bool

  Добавляет заголовок `X-PHP-Originating-Script` с UID скрипта и названием файла.

`mail.log` string

  Путь к лог-файлу для записи вызовов функции mail(). Записи в логе содержат полный путь до скрипта, номер строки, адрес получателя `To` и заголовки.

`mail.mixed_lf_and_crlf` bool

  Директива возвращает разделение строк в заголовках и теле сообщений электронной почты символом LF (Line Feed). С включённой директивой ядро имитирует поведение PHP 7, которое не соответствовало стандарту в части перевода строк. Директиву ввели в целях совместимости PHP с конкретными почтовыми агентами (англ. Mail Transfer Agent, MTA), которые неправильно обрабатывают последовательность CRLF (Carriage Return + Line Feed) как разделитель строк в заголовках и содержимом сообщений электронной почты.

`mail.force_extra_parameters` string

  Директива принудительно добавляет заданные параметры как дополнительные аргументы для передачи в двоичный файл sendmail. Параметры заменяют значение пятого параметра функции mail().

  Стандартное поведение режима инициализации `INI_SYSTEM` допускает установку значения для этой опции также через директиву `php_value` файла httpd.conf, но так делать не рекомендуют.
`SMTP` string

  Опция работает только в ОС Windows: домен или IP-адрес SMTP-сервера, к которому обратится PHP при отправке почты функцией mail().

`smtp_port` int

  Опция работает только в ОС Windows: порт `SMTP`-сервера, к которому обратится PHP при отправке почты функцией mail(); по умолчанию 25.

`sendmail_from` string

  Опция работает только в ОС Windows: адрес для заголовка `"From:"` в письмах, которые отправляют напрямую через SMTP-сервер. Директива также устанавливает заголовок `"Return-Path:"`.

`sendmail_path` string

  Путь до программы sendmail, часто /usr/sbin/sendmail или /usr/lib/sendmail. Команда configure пытается найти почтовый агент sendmail и установить значение по умолчанию автоматически, но если у команды не получается, путь устанавливают через эту опцию.

  Системам, которые не отправляют письма через агента sendmail, потребуется установить для этой директивы путь до обёртки или заменителя программы sendmail, если почтовая система содержит и предлагает такие альтернативы. Пользователи агента » Qmail, например, чаще устанавливают значение /var/qmail/bin/sendmail или /var/qmail/bin/qmail-inject.

  Команда qmail-inject не требует дополнительных опций для отправки писем.

  Директива также работает и в ОС Windows. При установке значения для директивы PHP проигнорирует опции smtp, smtp_port и sendmail_from и выполнит заданную команду.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open