php mail() no funciona

php mail() no funciona

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/sendmaily 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/sendmailprograma.

[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 sendmailbinario, 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 sendmailestá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).

información relacionada