php mail() funktioniert nicht

php mail() funktioniert nicht

ich habe gerade festgestellt, dass die mail()Funktion nicht funktioniert

ich verwende Debian und habe Postfix installiert, weil mir ein Freund das empfohlen hat (obwohl ich es nicht konfiguriert habe).

Wenn ich ein phpinfo() mache, bekomme ich:

sendmail_path   /usr/sbin/sendmail -t -i    /usr/sbin/sendmail -t -i

aber in diesen Verzeichnissen habe ich nichts wiesendmail

Haben Sie eine Idee, was ich tun muss, damit mail() funktioniert?

Danke

Antwort1

Unter Unix verlassen sich die meisten Programme für die E-Mail-Übertragung auf einen MTA (Message Transfer Agent). Wenn ein Programm eine Nachricht senden möchte, wird es ausgeführt /usr/sbin/sendmailund gibt die gesamte Nachricht in stdin aus.

Der Sendmail-MTA war der erste, der auf diese Weise funktionierte (und tut dies immer noch), und andere MTAs folgen derselben Konvention zur Bereitstellung eines /usr/sbin/sendmailProgramms.

[In dieser Antwort ist Sendmail der ursprüngliche MTA und sendmail(Kleinbuchstaben) ist /usr/sbin/sendmail(was bei allen derzeit verwendeten MTAs dabei ist).]

PHP mail()folgt der Unix-Tradition und übergibt die Nachricht einfach an die sendmailausführbare Datei. Das bedeutet, dass Sie einen MTA benötigen. Sie haben Postfix bereits installiert, was gut ist. EstutSie haben eine sendmailBinärdatei. Wenn Sie es also nicht haben /usr/sbin/, müssen Sie es woanders installiert haben – möglicherweise /usr/local/sbin/, wenn es aus dem Quellcode kompiliert wurde?

Eine Neuinstallation von Postfix könnte das Problem beheben. Wenn dies nicht der Fall ist, aktualisieren Sie Ihre Frage bitte mit Einzelheiten, z. B. wie Sie Postfix überhaupt installiert haben.

Wenn Ihr sendmailirgendwo anders als ist /usr/sbin/, müssen Sie die PHP-Konfiguration bearbeiten -- php.ini. Es ist normalerweise in /etc/php5/, und Debian hatdreidavon. ( cgi/ist für generisches CGI/FCGI, apache2/ist für das Apache-PHP-Modul, cli/ist für die Verwendung von PHP über die Befehlszeile.)

verwandte Informationen