Runtime Configuration
The behaviour of these functions is affected by settings in php.ini.
| 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 |
Here's a short explanation of the configuration directives.
mail.add_x_headerboolAdd
X-PHP-Originating-Scriptthat will include UID of the script followed by the filename.mail.logstringThe path to a log file that will log all mail() calls. Log entries include the full path of the script, line number,
Toaddress and headers.mail.mixed_lf_and_crlfboolAllows 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_parametersstringForce 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 forINI_SYSTEM, this value can also be set withphp_valuein httpd.conf (but this is not recommended).SMTPstringUsed under Windows only: host name or IP address of the SMTP server PHP should use for mail sent with the mail() function.
smtp_portintUsed under Windows only: Number of the port to connect to the server specified with the
SMTPsetting when sending mail with mail(); defaults to 25.sendmail_fromstringWhich
"From:"mail address should be used in mail sent directly via SMTP (Windows only). This directive also sets the"Return-Path:"header.sendmail_pathstringWhere 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.