Question: I'm trying to figure out why the mail function in PHP fails when called via web browser (i.e. apache), but I can run the same script from the command line using

> 
> php -f mailtest.php 
> 
> 
> 

This is one of my client's Fedora servers, so I don't grok it completely, but I do have root access should I need to change anything.

from php.ini:

> 
> sendmail\_path = /usr/sbin/sendmail -t -i
> 
> 
> 

Not sure if this could matter, but /usr/sbin/sendmail is a symlink to /etc/alternatives/mta, which is a symlink back to /usr/sbin/sendmail.sendmail. FWIW the apache user does have permission to run sendmail (tested sendmail directly from the command line).

```
OS: Fedora Core 7 Linux (kernel 2.6.23.17)  
Apache: 2.2.8  
PHP: 5.2.6

```

Any help here will be greatly appreciated!

Answer: 
I found the problem. SELinux was preventing apache from being able to use sendmail. To diagnose, I used

```
$ sestatus -b | grep sendmail  
httpd_can_sendmail                   off

```

Then to actually fix the problem:

```
$ restorecon /usr/sbin/sendmail
$ setsebool -P httpd_can_sendmail 1

```

Read more about it [here](http://www.linux-archive.org/fedora-selinux-support/38002-selinux-newbie.html).
This is my first answer here on StackOverflow! :o

So I had the same issue than you, matt! I use OpenSuse. I figured out that `postfix check` resulted with

```
postfix/postfix-script: warning: not owned by group maildrop: /usr/sbin/postqueue
postfix/postfix-script: warning: not owned by group maildrop: /usr/sbin/postdrop
postfix/postfix-script: warning: not set-gid or not owner+group+world executable: /usr/sbin/postqueue
postfix/postfix-script: warning: not set-gid or not owner+group+world executable: /usr/sbin/postdrop

```

so I ran the next commands:

```
# my postfix user is postfix and postfix group is maildrop
sudo chown 'postfix:maildrop' /usr/sbin/post{drop,queue}
sudo chmod g+s /usr/sbin/post{queue,drop}

```

and then, I tried to simple PHP script from my browser to test if everything works fine: (assuming you want to mail abc@gmail.com)

```
<?php
$ret = mail('abc@gmail.com', 'subject', 'message');
if ($ret === true)
  echo 'Success'.PHP_EOL;
else
  echo 'Error'.PHP_EOL;

```

and that's fine! I hope you will fix the issue with this method