Me acabo de dar cuenta de que la mail()
función no funciona.
Estoy en Debian, instalé postfix porque un amigo me lo dijo (aunque no lo configuré).
Cuando hago un phpinfo() tengo:
sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i
pero en estos directorios no tengo nada comosendmail
¿Tiene una idea de lo que debo hacer para que mail() funcione?
Gracias
Respuesta1
En Unix, la mayoría de los programas dependen de un MTA (agente de transferencia de mensajes) para realizar la transmisión de correo. Cuando un programa quiere enviar un mensaje, lo ejecuta /usr/sbin/sendmail
y le da el mensaje completo en stdin.
El MTA de Sendmail fue el primero en funcionar de esta manera (y todavía lo hace), y otros MTA siguen la misma convención de proporcionar un /usr/sbin/sendmail
programa.
[En esta respuesta, Sendmail es el MTA original y sendmail
(minúscula) es /usr/sbin/sendmail
(que viene con todos los MTA utilizados actualmente).]
PHP mail()
sigue la tradición de Unix y simplemente pasa el mensaje alsendmail
ejecutable. Lo que significa que necesitas un MTA. Ya instalaste Postfix, lo cual es bueno. De todos modos, esohacetiene un sendmail
binario, por lo que si no lo tiene /usr/sbin/
, entonces debe haberlo instalado en otro lugar, ¿quizás /usr/local/sbin/
si lo compiló desde la fuente?
Reinstalar Postfix puede solucionar el problema. Si no es así, actualice su pregunta con detalles como, en primer lugar, cómo instaló Postfix.
Si sendmail
estás en otro lugar que no sea /usr/sbin/
, tendrás que editar la configuración de PHP: php.ini
. Suele estar en/etc/php5/
, y Debian tienetresde aquellos. ( cgi/
es para CGI/FCGI genérico, apache2/
es para el módulo PHP de Apache, cli/
es para cuando se usa PHP desde la línea de comandos).