I'm trying to diagnose a problem with certain email addresses possibly being blocked on my server. I'm running PHP 5.3 on CentOS 5.7. The php.ini file lists a sendmail_path of /usr/sbin/sendmail -t -i, which when run in CLI hangs there. I've noticed that qmail is installed on my server, too, but I don't know if PHP is using it or not.

How do I find out which MTAs (i.e. sendmail, qmail, etc) PHP is using?

  • Just make sure you look at the correct php.ini and you'll get your answer. There's no other way. That said, your description of your actual problem is confusing. Perhaps you should focus on the real problem. Feb 8 '17 at 5:40
  • Every proper unix MTA installs a binary called /usr/sbin/sendmail which will respond to all common sendmail flags and commands. This is something people agreed to do specifically so that all POSIX software that isn't an MTA of itself will never need to worry about which MTA is installed.
    – Shadur
    Feb 8 '17 at 6:11
  • @JuliePelletier I believe it is the right php.ini file. I checked <? phpinfo() ?> for the right path. What do you think the real problem is?
    – symlink
    Feb 8 '17 at 6:20
  • @Shadur so sendmail is just a generic binary run by qmail?
    – symlink
    Feb 8 '17 at 6:49
  • Unless you or your distribution did something spectacularly ill-advised, almost certainly yes.
    – Shadur
    Feb 8 '17 at 9:48

TL;DR: PHP doesn't care about what MTA you're using.

Longer explanation: this goes way back almost as far as the POSIX standards themselves, but every properly written MTA will provide a binary named sendmail that will behave exactly as the "official" sendmail program would be expected to behave.

As a result, every unix program or daemon that, for one reason or other, finds itself needing to email someone, knows they can just call /usr/sbin/sendmail with known options, and be confident that whatever MTA was installed will know what to do with the message from there on in.

As such, unless you use a specific SMTP PHP module and explicitly to use different mail settings (generally, a remote server/port with or without TLS and/or authentication), it will just call /usr/sbin/sendmail and let the underlying distribution worry about what happens next.

If your mail isn't arriving, I recommend you check the error logs of the MTA (usually in /var/log/mail.* but depends on your distribution and MTA) for answers.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.