Resolver PHP mail no funciona

Español

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.

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