Resolver PHP mail no funciona

Una de las causas por la que la función mail de PHP no envie correo eletrónico es: que el SELinux este impidiendo que el Apache use el sendmail, esto puede ocurrir debido a que el binario del sendmail perdió el contexto o que el booleano httpd_can_sendmail este en off. Para solucionarlo siga los siguientes pasos.

Nota: La librería PHPMailer emite el error: La función Mail no puede ser instanciada (Could not instantiate mail function) cuando la función mail devuelve falso.

Cheque el estado del SELinux
# sestatus
Cheque que el booleano httpd_can_sendmail este en on
# getsebool httpd_can_sendmail

Si esta en off, ejecute

# setsebool -P httpd_can_sendmail on

donde: -P significa que el valor es persistente (se mantiene después de reiniciar el SO)

Intente enviar correos si sigue sin funcionar siga con el próximo paso

Cheque el contexto del sendmail
$ ls -lZ /usr/sbin/sendmail*
rwxr-sr-x  root smmsp system_u:object_r:sendmail_exec_t /usr/sbin/sendmail.sendmail

Si es diferente al mostrado, ejecute

# chcon -t sendmail_exec_t /usr/sbin/sendmail.sendmail

2 comentarios en “Resolver PHP mail no funciona”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.