Alltimefriend: Mail-Funktion nachinstallieren?

Hallo Leute!

Ein Kunde von mir ist mit der Homepage auf einen eigenen Server umgezogen. Nun kommt bei einem Script, welches die Mail()-Funktion benutzt folgende Fehlermeldung:

Fatal error: Call to undefined function: mail() in /srv/www/htdocs/network/ae01.php on line 69

Kann es sein, dass PHP die Mail()-Funktion hier nicht kennt? Was muss ich noch nachinstallieren, damit es läuft?

OS ist SuSE 9.1

lg, ATF

  1. Hello,

    Fatal error: Call to undefined function: mail() in /srv/www/htdocs/network/ae01.php on line 69

    Kann es sein, dass PHP die Mail()-Funktion hier nicht kennt? Was muss ich noch nachinstallieren, damit es läuft?

    Man sollte sich erstmal über die Systemeinstellungen und Versionen Klarheit verschaffen.

    phpinfo() hilft dabei.

    Es könnte der Safe Mode im Spiel sein. Da kann man dann auch einzelne Funktionen verbieten.

    mit

    echo "<pre>";
    $_func = get_defined_functions();
    sort($_func['internal']);
    sort($_func['user']);
    print_r(get_defined_functions());
    echo "</pre>";

    kann man sich Überblick verschaffen, welche Funktionen zur Verfügung stehen.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Hallo!

      Es könnte der Safe Mode im Spiel sein. Da kann man dann auch einzelne Funktionen verbieten.

      mit

      echo "<pre>";
      $_func = get_defined_functions();
      sort($_func['internal']);
      sort($_func['user']);
      print_r(get_defined_functions());
      echo "</pre>";

      kann man sich Überblick verschaffen, welche Funktionen zur Verfügung stehen.

      Hab Dein Script mal eingegeben und mail() scheint nicht auf, Safe Mode ist deaktiviert.

      Ich bin eigentlich nur der PHP-Programmierer der Seite, den Server hat einer aufgesetzt, der Linux zum ersten Mal in den Händen hatte. Habe "nur" per SSH und Webmin drauf Zugriff, muss zugeben dass ich von Server-Administration nicht wirklich viel verstehe ;o(

      Musste sogar PHP nachinstallieren, da dieser das nicht getan hatte. Hab auch grad gemerkt, dass Sendmail nicht installiert war, habs über FTP auch nachinstalliert.

      In welchem File kann man die einzelnen Funktionen denn verbieten? bzw. wie?

      lg, ATF

      1. Hello,

        Hab Dein Script mal eingegeben und mail() scheint nicht auf, Safe Mode ist deaktiviert.

        Musste sogar PHP nachinstallieren, da dieser das nicht getan hatte. Hab auch grad gemerkt, dass Sendmail nicht installiert war, habs über FTP auch nachinstalliert.

        Da sollte man nochmals nachlesen, welche Kompilations-Option für das Einbinden der Mail()-Funktion verantwortlich ist. Das weiß ich auch nicht aus dem Kopf und kann bei mir auch keine finden.

        Welche PHP-Version auf welcher Plattform wird denn benutzt?
        Benutzt Du die CLI, CGI oder die Modul-Version?

        In welchem File kann man die einzelnen Funktionen denn verbieten? bzw. wie?

        Das steht in der INI-Variablen 'disable_functions' und wird i.d.R. zusammen mit Safe Mode eingesetzt, ist aber eine davon unabhängige Einschränkungsmöglichkeit.

        http://de.php.net/features.safe-mode

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Hi!

          Welche PHP-Version auf welcher Plattform wird denn benutzt?
          Benutzt Du die CLI, CGI oder die Modul-Version?

          Version 4.3.4 auf Suse Linux 9.1, unter Apache 2, die genauen Kernel-Versionen kenn ich selbst nicht, leider ;o(

          Hab die Modul-Version installiert.

          Das steht in der INI-Variablen 'disable_functions' und wird i.d.R. zusammen mit Safe Mode eingesetzt, ist aber eine davon unabhängige Einschränkungsmöglichkeit.

          Bei disable_functions steht nichts, es ist also keine Funktion deaktiviert

          Hab Dein Script und PHPinfo auf folgender Seite eingerichtet:

          http://194.208.29.29/test.php

          lg, Jan

          1. Hello Jan,

            Welche PHP-Version auf welcher Plattform wird denn benutzt?
            Benutzt Du die CLI, CGI oder die Modul-Version?

            Version 4.3.4 auf Suse Linux 9.1, unter Apache 2, die genauen Kernel-Versionen kenn ich selbst nicht, leider ;o(

            Hab die Modul-Version installiert.

            Das scheint ein Problem zu sein, dass öfter auftritt. Ich konnte dazu noch ein paar Hints finden mit Google. Da wird aber schlussendlich behauptet, dass der Link auf das Mailprogramm falsch war. Nach erneuter Kompilation mit dem richtig eingerichteten Pfad soll die Funktion dann vorhanden gewesen sein.

            Ich hatte neulich ein entfernt ähnliches Problem. Da hatte ich mir mit dem Upgrade auf PHP 4.3.8. auch den Pfad zerschossen und mail hat nicht funktioniert. Aber die Funktion war wenigstens vorhanden.

            Also vorgeschalgene Vorgehensweise: Überprüfen, ob sendmail über die Konsole funktioniert:

            sendmail -t -i
            From: deine@email
            To: deine@email
            Subject: Test

            Test
            [Ctrl+D] zum beenden der Mail

            Und der Thread dazu: http://forum.de.selfhtml.org/archiv/2004/8/87248/#m518380

            Wenn das funktioniert, und der Pfad asu der php.ini mit dem link übereinstimmt, dann sollte die Neukompilation von PHP angeblich zum Erfolg führen.

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
    2. Hello,

      da hatte sich aber ein kliener Fehler eingeschlichen.
      Die Funktionen sollten doch sortiert werden:

      phpinfo();

      echo "<pre>";
      $_func = get_defined_functions();
      sort($_func['internal']);
      sort($_func['user']);

      print_r($_func);

      echo "</pre>";

      Und gleich noch ergänzt.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
  2. Hallo,

    Fatal error: Call to undefined function: mail() in /srv/www/htdocs/network/ae01.php on line 69

    führe mal YOU aus und installiere den Patch für PHP,
    dann klappt auch mail() wieder

    1. Hello,

      Fatal error: Call to undefined function: mail() in /srv/www/htdocs/network/ae01.php on line 69

      führe mal YOU aus und installiere den Patch für PHP,
      dann klappt auch mail() wieder

      Könntest Du das bitte noch etwas näher erläutern?
      Wodurch wird denn die Funktion mail() unterdrückt in PHP?

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau