Just run into this one as I’ve been configuring a new server.
On a fairly standard Fedora set-up it’s likely that the reason you can’t send emails from a PHP script is in fact because SELinux is stopping Apache (httpd). This applies to both sending with Sendmail, and sending via SMTP.
You’ll need to run the following commands as root to fix the problem:
$ setsebool -P httpd_can_sendmail 1 $ /etc/init.d/httpd restart