[php-src] Issue #20648: Example value for sendmail_path in sapi/fpm/www.conf.in seems to be encouraging bad practice
[email protected] (siliconforks)
| Newsgroups | php.bugs |
|---|---|
| Message-ID | <7MJVRcoFCvREOKofacs6ANanwSr9lkPLgLzk2aaJPPo@main.internal.php.net> |
Issue: https://github.com/php/php-src/issues/20648 Author: siliconforks ### Description The file [sapi/fpm/www.conf.in](https://github.com/php/php-src/blob/master/sapi/fpm/www.conf.in) currently contains the following line: ``` ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f [email protected] ``` I think the intent of this is really to illustrate the use of `php_admin_value` rather than provide guidance on setting `sendmail_path`; however, I think a lot of people actually want to configure their `sendmail_path` and then they see this example, and then they blindly copy and paste it (just changing the path and email address as needed) without really thinking about it much. The problem is that including the `-f` option in `sendmail_path` is generally a bad practice and should be avoided. The reason this is bad is that the [PHP mail() function](https://www.php.net/manual/en/function.mail.php) has a parameter `$additional_params` which is intended to be used to specify the `-f` option. But if you specify an `-f` option in `$additional_params` **and** there is already an `-f` option in `sendmail_path`, you end up passing the `-f` option to `sendmail` twice. This may cause `sendmail` to fail completely, possibly with an error message like [`More than one "from" person`](https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting#could-not-instantiate-mail-function). For many, many years, there have been lots of people having trouble with this: https://mantisbt.org/forums/viewtopic.php?t=24647 https://github.com/magento/magento2/issues/20033#issuecomment-532289611 https://bugs.php.net/bug.php?id=53984 https://github.com/bcit-ci/CodeIgniter/issues/4343 https://forum.joomla.org/viewtopic.php?f=622&t=727375 https://www.vmayo.com/docs/fixed-phpmailer-smtp-error-could-not-connect-to-smtp-host-2/#11-toc-title ... and so on ... I was wondering why there seem to be so many people dealing with poorly configured `sendmail_path` values... I think at least part of the problem may be this example code in the PHP-FPM `www.conf` file. Can this example be changed to something else? Maybe something like this: ``` ;php_admin_value[sendmail_path] = /path/to/sendmail -t -i ``` ### PHP Version ```plain This issue has existed in every PHP version since PHP-FPM was merged into it (and possibly it existed in the separate PHP-FPM project before that). ``` ### Operating System _No response_