Runtime Configuration

The behaviour of these functions is affected by settings in php.ini.

Mail configuration options
Name Default Changeable Changelog
mail.add_x_header "0" INI_PERDIR  
mail.mixed_lf_and_crlf "0" INI_SYSTEM|INI_PERDIR Added in PHP 8.2.4
mail.log NULL INI_SYSTEM|INI_PERDIR  
mail.force_extra_parameters NULL INI_SYSTEM  
SMTP "localhost" INI_ALL  
smtp_port "25" INI_ALL  
sendmail_from NULL INI_ALL  
sendmail_path "/usr/sbin/sendmail -t -i" INI_SYSTEM  
For further details and definitions of the INI_* modes, see the Where a configuration setting may be set.

Here's a short explanation of the configuration directives.

mail.add_x_header bool

Add X-PHP-Originating-Script that will include UID of the script followed by the filename.

mail.log string

The path to a log file that will log all mail calls. Log entries include the full path of the script, line number, To address and headers.

mail.mixed_lf_and_crlf bool

Allows reverting the line separator for email headers and message bodies to LF (Line Feed), mimicking the non-compliant behavior of PHP 7. It is provided as a compatibility measure for certain non-compliant Mail Transfer Agents (MTAs) that fail to correctly process CRLF (Carriage Return + Line Feed) as a line separator in email headers and message content.

mail.force_extra_parameters string

Force the addition of the specified parameters to be passed as extra parameters to the sendmail binary. These parameters will always replace the value of the 5th parameter to mail.

In addition to the default behavior for INI_SYSTEM, this value can also be set with php_value in httpd.conf (but this is not recommended).
SMTP string

Used under Windows only: host name or IP address of the SMTP server PHP should use for mail sent with the mail function.

smtp_port int

Used under Windows only: Number of the port to connect to the server specified with the SMTP setting when sending mail with mail; defaults to 25.

sendmail_from string

Which "From:" mail address should be used in mail sent directly via SMTP (Windows only). This directive also sets the "Return-Path:" header.

sendmail_path string

Where the sendmail program can be found, usually /usr/sbin/sendmail or /usr/lib/sendmail. configure does an honest attempt of locating this one for you and set a default, but if it fails, you can set it here.

Systems not using sendmail should set this directive to the sendmail wrapper/replacement their mail system offers, if any. For example, » Qmail users can normally set it to /var/qmail/bin/sendmail or /var/qmail/bin/qmail-inject.

qmail-inject does not require any option to process mail correctly.

This directive works also under Windows. If set, smtp, smtp_port and sendmail_from are ignored and the specified command is executed.