php / php/php-src

Example value for sendmail_path in sapi/fpm/www.conf.in seems to be encouraging bad practice

Open
#20,648 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Bug SAPI: fpm Status: Needs Triage
Dominant language
C
Stars
40.4k
Forks
8.1k
Avg merge
2d 13h
Merged PRs (30d)
96

Description

Description

The file sapi/fpm/www.conf.in currently contains the following line:

;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com

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 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.

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
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

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review sapi/fpm/www.conf.in and the existing commented sendmail_path example. Remove the -f option from the example while retaining the php_admin_value demonstration, then verify the documented value matches the issue's proposed form and does not prescribe a sender address.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
backend
Issue type
Documentation
Difficulty
1/5
Estimated time
Under an hour
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.