Are you certain you are on/hitting the same machine for your php CLI script run and your browser instance? E.g., are you seeing http access_log entries for the "test_mail.php" browser attempt on the same machine where you are seeing maillog entries for your (successful) CLI runs? I don't have a centos-6.5 machine, so it's possible that more is being logged on my 6.7 machine, but with selinux enabled, I'm getting 6-7 maillog lines, including: Aug 23 13:48:28 xxx sendmail[2138]: t7NDmSYo002138: SYSERR(apache): queueup: cannot create queue file ./qft7NDmSYo002138, euid=48, fd=-1, fp=0x0: Permission denied for the browser attempts on that script. What shows in the selinux/config file isn't definitive. Instead of showing the contents of that file, issue the command "sestatus" (with no options) to see the various status indicators. You should see the following: SELinux status: SELinuxfs mount: Current mode: Mode from config file: The values shown for first and third lines are the relevant ones for your system's current status. By the way, what is shown in the phpinfo() output -- for both the CLI and browser -- for: sendmail_path Path to sendmail > Date: Monday, August 24, 2015 08:54:24 +0800 > From: Xinhao Zheng <xinhaozheng@xxxxxxxxx> > > Thanks for your reply. > ># sestatus -b | grep sendmail > get nothing > ># cat /etc/selinux/config > ># This file controls the state of SELinux on the system. ># SELINUX= can take one of these three values: ># enforcing - SELinux security policy is enforced. ># permissive - SELinux prints warnings instead of enforcing. ># disabled - No SELinux policy is loaded. > SELINUX=disabled ># SELINUXTYPE= can take one of these two values: ># targeted - Targeted processes are protected, ># mls - Multi Level Security protection. > SELINUXTYPE=targeted > >>>>> If you aren't seeing anything on these (both success and >>>>> failure) i > if i try to send email from command line,i do get mail log from > /var/log/maillog but no if i try to send from browser. > > > On Sun, Aug 23, 2015 at 10:47 PM, Richard wrote: >> The issue is that when you do this through the CLI you are running >> as a normal user. When you call this script/page via a browser >> it's running as the httpd server. On my centos-6.7, php-5.3.3 >> (you should really upgrade) system the latter approach is being >> blocked by selinux. >> >> Did you run the: >> >> sestatus -b | grep sendmail >> >> command as suggested earlier? When I do I get: >> >> httpd_can_sendmail off >> >> on my centos system, with selinux "enforcing". When I disable >> selinux, sending via the browser call to the script works. >> >> I.e., there are no bugs here -- just a system configuration issue. >> >> If you aren't seeing anything on these (both success and failure) >> in your maillog I suspect that you aren't looking at the correct >> log. You need to make certain that you are looking at, and taking >> actions on, the correct environment. >> >> [please **DO NOT** include my email address in your reply. i'm on >> the list and get the messages just fine that way.] >> >> >> ------------ Original Message ------------ >>> Date: Sunday, August 23, 2015 10:35:35 +0800 >>> From: Xinhao Zheng <xinhaozheng@xxxxxxxxx> >>> >>> yes.reboot with no luck. >>> >>> one more thing,i run apache as reverse proxy,the frontend is >>> nginx.but i think this has nothing to do with mail function. >>> >>> there is no log in apache error log,neither in /var/log/maillog. >>> so any other idea. >>> i googled a lot, tweak sendmail config, check the user perm .... >>> >>> somebody said this may be a bug in php5.3.28? >>> >>> >>> >>> >>> On Sun, Aug 23, 2015 at 10:19 AM, Xinhao Zheng >>> <xinhaozheng@xxxxxxxxx> wrote: >>>> # cat /etc/redhat-release >>>> CentOS release 6.5 (Final) >>>> >>>> >> < snip > >>>> >>>> i tried chmod 777 to sendmail with no lucky shot. it seems >>>> apache is not allow to send mail. >>>> >>>> >>>> On Sun, Aug 23, 2015 at 9:56 AM, Aziz Saleh >>>> <azizsaleh@xxxxxxxxx> wrote: >>>>> >>>>> >>>>> >>>>> On Sat, Aug 22, 2015 at 9:53 PM, Xinhao Zheng >>>>> <xinhaozheng@xxxxxxxxx> wrote: >>>>>> >>>>>> i tried that.SElinux is off. >>>>>> thanks! >>>>>> >>>>>> On Sun, Aug 23, 2015 at 9:45 AM, Aziz Saleh >>>>>> <azizsaleh@xxxxxxxxx> wrote: >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Sat, Aug 22, 2015 at 9:31 PM, Xinhao Zheng >>>>>>> <xinhaozheng@xxxxxxxxx> wrote: >>>>>>>> >>>>>>>> Hello, >>>>>>>> >>>>>>>> Thanks for help. >>>>>>>> >>>>>>>> i am sure they share the same config file. >>>>>>>> /usr/local/php5.3.28/bin/php --ini shows >>>>>>>> /usr/local/php5.3.28/etc/php.ini and phpinfo page show same >>>>>>>> config file >>>>>>>> >>>>>>>> yes,i run same file. >>>>>>>> >>>>>>>> command line => /usr/local/php5.3.28/bin/php >>>>>>>> /path/to/webroot/test_mail.php web browser => >>>>>>>> http://IP/test_mail.php >>>>>>>> >>>>>>>> source code of test_mail.php >>>>>>>> >>>>>>>> <?php >>>>>>>> define('DEBUG_MODE',1); >>>>>>>> if (defined('DEBUG_MODE') ) { >>>>>>>> error_reporting(E_ALL); >>>>>>>> ini_set('display_errors',TRUE); >>>>>>>> ini_set('error_log','/tmp/log_php'); >>>>>>>> ini_set('log_errors',TRUE); >>>>>>>> } >>>>>>>> >>>>>>>> $message = "Line 1\nLine 2\nLine 3" . date('Y-m-d') . ' unix >>>>>>>> timestamp ' . time(); >>>>>>>> $message = wordwrap($message, 70); >>>>>>>> $ok = mail('mail1@xxxxxxxxx', 'My Subject' . date('Y-m-d') . >>>>>>>> ' meeting', $message); >>>>>>>> var_dump($ok); >>>>>>>> $ok = mail('mail2@xxxxxxxxx', 'My Subject' . date('Y-m-d') . >>>>>>>> ' meeting', $message); >>>>>>>> var_dump($ok); >>>>>>>> >>>>>>>> ?> >>>>>>>> >>>>>>>> On Sun, Aug 23, 2015 at 12:19 AM, Richard wrote: >>>>>>>> >>>>>>>> > >>>>>>>> > >>>>>>>> > > Date: Saturday, August 22, 2015 09:51:45 -0400 >>>>>>>> > > From: Aziz Saleh <azizsaleh@xxxxxxxxx> >>>>>>>> > > >>>>>>>> > > On Sat, Aug 22, 2015 at 5:50 AM, Xinhao Zheng >>>>>>>> > > <xinhaozheng@xxxxxxxxx> wrote: >>>>>>>> > > >>>>>>>> > >> Hello, >>>>>>>> > >> >>>>>>>> > >> i got a prolem.php mail() function can not send >>>>>>>> > >> email from http request(apache),but it work well if >>>>>>>> > >> i call it from command line. >>>>>>>> > >> >>>>>>>> > >> /usr/local/php5.3.28/bin/php test_mail.php >>>>>>>> > >> => ok http://ip/test_mail.php => >>>>>>>> > >> failed. >>>>>>>> > >> >>>>>>>> > >> i check both apache error log and /var/log/maillog,but >>>>>>>> > >> nothing get there. i am running php5.3.28 over apache >>>>>>>> > >> as module. with phpinfo and this command, >>>>>>>> > >> /usr/local/php5.3.28/bin/php --ini , i am sure they use >>>>>>>> > >> same php config file.i also tried to turn off the >>>>>>>> > >> iptable,but no lucky shot. >>>>>>>> > >> >>>>>>>> > >> >>>>>>>> > >> >>>>>>>> > > Use phpinfo() to confirm they are using the same >>>>>>>> > > configs. >>>>>>>> > >>>>>>>> > Are you accessing the same "test_mail.php" page/code in >>>>>>>> > both cases? If so, I really wouldn't expect it to work as >>>>>>>> > the environments are totally different. >>>>>>>> > >>>>>>>> > Show your code. >>>>>>>> > >>>>>>>> > By the way, if you aren't generating a message (nothing in >>>>>>>> > /var/log/maillog) then mucking with iptables will have no >>>>>>>> > effect. >>>>>>>> > >>>>>>> >>>>>>> Try running: >>>>>>> >>>>>>> sestatus -b | grep sendmail >>>>>>> >>>>>>> from command prompt, you are probably using SELinux and have >>>>>>> httpd_can_sendmail set to off, in which case you can send >>>>>>> mail via CLI but not Apache. >>>>>> >>>>>> >>>>> >>>>> I have ran into issues in the past where if I disabled SELinux, >>>>> I had to restart the server for it to take effect, not sure if >>>>> it is the same issue on your end, but wouldn't hurt to try if >>>>> you haven't. >> >> ------------ End Original Message ------------ ------------ End Original Message ------------ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php