não pode usar mail () no nginx, mas pode enviar mensagens no console usando o msmtp

1

Eu configurei msmtp em meus centos 6, eu sei que está funcionando bem, porque eu posso enviar e-mail usando o comando bash:

echo -e "Subject: Test Mail\r\n\r\nThis is a test mail" |msmtp --debug --from=default -t [email protected]

então, estou passando a permitir que o nginx também permita o uso de msmtp , no meu php.ini este é o meu caminho do sendmail:

sendmail_path = "/usr/bin/msmtp -C /etc/msmtprc --logfile /var/log/msmtp.log -a gmail -t"

depois, tentei enviar usando isso:

<?php
if(mail("[email protected]","A Subject Here","Hi there,\nThis email was sent using PHP's mail function."))
print "Email successfully sent";
else
print "An error occured";
?>

Mas, continua falhando, eu estou começando a pensar que é por causa do permission porque nada foi escrito nos logs, aqui estão as permissões que eu tenho

para msmtprc @ / etc /

[root@xxxx ~]# cd /etc/
[root@xxxx etc]# ls -l
-rw-------  1 nginx   nginx     248 Apr  2 14:55 msmtprc

para / var / log

-rw-r--r-- 1 nginx  nginx    788 Apr  2 14:56 msmtp.log

É um problema de permissão? ou outro. a quem devo chown é para nginx? ou outro mais?

Espero que alguém possa ajudar, eu estava fazendo tentativa e erro por horas e tem sido frustrante. Obrigado!

    
por The Wolf 02.04.2015 / 21:41

1 resposta

3

Desde o CentOS 6.6, as políticas do SELinux aplicadas ao Apache agora também são aplicadas ao nginx e php-fpm da mesma maneira. Assim, você precisa usar o booleano SELinux certo para permitir que o servidor da Web envie e-mails.

setsebool -P httpd_can_sendmail 1
    
por 03.04.2015 / 00:03