The Wolf asked:
I setup msmtp on my centos 6, i know its working fine because I can send email using bash command:
echo -e "Subject: Test Mail\r\n\r\nThis is a test mail" |msmtp --debug --from=default -t email@example.com
then, I am moving on to allowing nginx to also allow the use of
msmtp, in my
php.ini this is my sendmail path:
sendmail_path = "/usr/bin/msmtp -C /etc/msmtprc --logfile /var/log/msmtp.log -a gmail -t"
then, I tried sending using this:
<?php if(mail("firstname.lastname@example.org","A Subject Here","Hi there,\nThis email was sent using PHP's mail function.")) print "Email successfully sent"; else print "An error occured"; ?>
But, it keeps failing, I am starting to think it is because of the
permission because nothing was written in the logs, here are the permissions I have
for msmtprc @ /etc/
[root@xxxx ~]# cd /etc/ [root@xxxx etc]# ls -l -rw------- 1 nginx nginx 248 Apr 2 14:55 msmtprc
-rw-r--r-- 1 nginx nginx 788 Apr 2 14:56 msmtp.log
Is it permission issue? or other else. to whom should I
chown is it for nginx? or other else?
Hope somebody can help, I’d been doing trial and error for hours and it has been frustrating. Thanks!
Since CentOS 6.6, SELinux policies that applied to Apache are now also applied to nginx and php-fpm in the same way. Thus you need to use the right SELinux boolean to allow the web server to send mail.
setsebool -P httpd_can_sendmail 1
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.