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
Los tutoriales aquí en LibreByte están disponible bajo una licencia de software libre. Si le gusta mi trabajo considere:
Comprar un Hosting/VPS o Servidor Dedicado en MCKHost

2 comentarios

  1. Muy Bueno me ayudo bastante gracias

    • Liliana el agosto 24, 2012 a las 5:16 pm
    • Responder

    Muchas gracias, me sirvió mucho este artículo. Exitos

Deja una respuesta

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.