Mailversand mit Skript, dass über cronjob aufgerufen wird ...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mailversand mit Skript, dass über cronjob aufgerufen wird ...

    Hallo,
    ich habe eine PHP-Datei in der die mail()-Funktion aufgerufen wird.
    Ich habe eine sh-Datei (demo.sh) in der ich diese PHP-Datei aufrufe mit
    Code:
    php /srv/www/htdocs/web1/html/test.php
    Diese Datei lasse ich über einen Cronjob aufrufen.

    Das Problem:
    Der Cronjob wird korrekt ausgeführt. Er ruft die demo.sh auf und führt das PHP-Skript aus. Dies konnte ich sehen , da ich in der PHP-Datei auch eine Datenbankeintrag habe der korrekt durchgeührt wird

    ABER

    die Mail wird nicht verschickt. Ich hatte testweise an der Shell einmal demo.sh aufgerufen und festegestellt dass dort alles korekt ist, da sowohl der Datenbankeintrag gemacht wird, als auch die Mail verschickt wird. Warum funktioniert dies nicht wenn ich die sh-Datei über einen Cronjob aufrufe ? Muss man dort noch was aktivieren, damit er die mail()-Funktion erkennt?

    Danke und Grüße,
    Vikko

  • #2
    weil durch den Aufruf per php ... eventuell die Serveumgebung nicht stimmt?

    probiere mal

    lynx localhost://....
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

    Kommentar


    • #3
      Original geschrieben von TBT
      lynx localhost://....
      Was ruf ich nach dem // auf? Also auf welchen Pfad bezieht sich das ?

      Kommentar


      • #4
        Auf dein Verzeichnis vom Webserver aus gesehen.


        Naja, was Lynx auf nem Produktivserver zu suchen hat...
        Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
        var_dump(), print_r(), debug_backtrace und echo.
        Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
        Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
        Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

        Kommentar


        • #5
          Naja, was Lynx auf nem Produktivserver zu suchen hat...
          In meinen augen eine der besten möglichkeiten PHP per Cron auszuführen.

          Kommentar


          • #6
            Ich habe nun verschiedenes ausprobiert, aber ich weiß nicht was für ein Pfad lynx da nun erwartet. Meine Dateien liegen auf dem Server unter dem abs. Pfad /srv/www/htdocs/web1/html/test.php (ist ein server4you server)

            und ich hab jetzt lynx localhost://web1/html/test.php probiert, aber das will er nicht ausführen.

            an was kann das denn noch liegen, dass es mit "php ..." nicht funktioniert. auf dem alten server, wo vorher meine dateien lagen ging das einwandfrei.

            Kommentar


            • #7
              wo ist denn dein Docroot ?

              wahrscheinlich doch /srv/www/htdocs/web1/ oder?

              lynx erwartet genau das selbe, als wenn du deinen Browser @home nutzen würdest
              TBT

              Die zwei wichtigsten Regeln für eine berufliche Karriere:
              1. Verrate niemals alles was du weißt!


              PHP 2 AllPatrizier II Browsergame

              Kommentar


              • #8
                Ich erhalte dann immer "Alert! Unsupported URL scheme!" und ich habe jetzt echt jeden möglichen Pfad probiert...

                Kommentar


                • #9
                  als da wären?

                  Kommentar


                  • #10
                    na zum beipiel der servername vielleicht? entweder isses
                    http://localhost/pfad/datei.php
                    oder eben ein domainname
                    http://www.domainname.de/pfad/datei.php
                    Dein Newsletter auf deiner eigenen Homepage: http://newsletter.maennchen1.de

                    Kommentar


                    • #11
                      ich habe eine PHP-Datei in der die mail()-Funktion aufgerufen wird.
                      Ich habe eine sh-Datei (demo.sh) in der ich diese PHP-Datei aufrufe mit
                      also du kannst php-scripte auch direkt als cron-job ausführen.

                      php -f /srv/www/htdocs/web1/html/test.php -q

                      brauchst auch keinen lynx dafür. mit der mail-funktion gibt es auch keine probleme, solange du keine "dynamischen" pfade angibst wie z.b. $_SERVER['DOCUMENT_ROOT']. außerdem sollte der cron-job als root ausgeführt werden.
                      gruss
                      peter
                      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                      Meine Seite

                      Kommentar


                      • #12
                        Dass ich das PHP-Skript nicht direkt, sondern über die SH-Datei aufrufe hat den Zweck, da der Cronjob alle 10 Minuten gestartet wird und in der SH-Datei sich immer andere Verweise zu PHP-Dateien befinden können die aufgerufen werden sollen.

                        Ich hatte jetzt noch einen Tipp bekommen, dass ich in der SH-Datei am anfang noch etwas ergänzen soll:

                        #!/bin/bash
                        php /srv/www/htdocs/web1/html/test.php
                        Aber das ändert auch nichts daran. Wenn der Cronjob ausgeführt wird geht eine E-Mail an den root mit er Meldung

                        ...Subject: Cron <root@essen> /srv/www/htdocs/web1/html/demo.sh
                        X-Cron-Env: <SHELL=/bin/sh>
                        X-Cron-Env: <HOME=/root>
                        X-Cron-Env: <PATH=/usr/bin:/bin>
                        X-Cron-Env: <LOGNAME=root>

                        sh: line 1: sendmail: command not found
                        Content-type: text/html
                        X-Powered-By: PHP/4.3.3
                        Wieso kennt er bei dem Aufruf sendmail nicht, obwohl es beim Aufruf von ./demo.sh über die Shell einwandfrei funktioniert

                        Kommentar


                        • #13
                          ich rate mal, rechner falsch konfiguriert, ansonsten schau dir noch mal die parameter an, die du dem php-befehl übergeben kannst.

                          peter
                          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                          Meine Seite

                          Kommentar


                          • #14
                            Wieso Rechner falsch konfiguriert? Wenn ich ./demo.sh so aufrufe funktioniert ja alles. Muss also etwas speziell im zusammenhang mit dem aufruf via cron job zu tun haben...

                            Kommentar


                            • #15
                              dann zeig doch mal den eintrag in der crontab und den kompletten code der demo.sh

                              peter
                              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                              Meine Seite

                              Kommentar

                              Lädt...
                              X