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

Поведение функций зависит от установок в файле 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 и выполнит заданную команду.