osTicket 1.10 Cron Job funktioniert nicht und was Sie tun können.

Wenn der Cron Job in osTicket 1.10 Probleme macht und nicht funktioniert äußert sich das in dem  die Abholung der E-Mails via IMAP oder POP nicht funktioniert. Mit der Funktion „Abrufen mittels auto-cron“ gibt es meist keine Probleme, doch funktioniert diese Variante  nur, wenn ein Benutzer am Ticketsystem angemeldet ist und die Seiten aktualisiert. Eine nicht wirklich gute Lösung, da Sie ja über einen neuen Ticketeingang oder neue Informationen zu einem bestehenden Ticket informiert werden möchten, auch wenn Sie gerade nicht am System arbeiten.

Nachdem sichergestellt ist, dass der externe Webserver die cron.php oder alternativ die rcron.php korrekt ausführt, kann man die Fehlersuche auf osTicket beschränken. Hier müssen Sie überprüfen, ob die E-Mail Server korrekt in osTicket eingetragen sind. Dies kann man am besten mit der aktivierten auto-cron Funktion testen, ob die E-Mails bei Benutzerinteraktion ankommen. Der Haken „E-Mails abrufen“ im Admin Bereich unter „E-Mail-Adressen“->“Einstellungen“->“Eingehende E-Mails“ muss hier gesetzt sein.

Einrichtung mittels rcron.php:

  1. Aus dem gepackten Installationspaket im Verzeichnis „Scripts“ die Datei rcron.php in das Verzeichnis api der osTicket Installation auf dem Server kopieren.
    Anschließend benötigt man die IP-Adresse des Webservers. Mit dieser IP-Adresse muss man im Backend von osTicket einen API-Schlüssel erzeugen.
    Cron Job - API
  2. Wenn der Schlüssel angelegt ist können Sie das osTicket-Backend verlassen
  3. Nun die Datei rcron.php bearbeiten: In der Datei rcron.php seht Ihr sofort, wo der API-Schlüssel und Eure URL zum Script rcron.php eingetragen werden muss, die angepasste rcron.php auf dem Webserver speichern. Das Script nun in einem Browser einmal ausführen. Wenn es beriets Emails auf dem Mailserver gibt, sollten diese nun abgerufen werden. Wenn das nicht funktioniert kann dies an einer falschen Prüfmethode liegen.

Ändern der Prüfmethode in osTicket:

Die Ursache der nicht funktionierenden automatischen E-Mail Abholung liegt bei einer Abholung lag letztendlich an der cron.php. Diese wurde durch die Prüfung in der Methode

if (!osTicket::is_cli())

abgebrochen. Durch eine Umstellung der Prüfung auf die IP-Adresse des Webservers

if ($_SERVER[‚REMOTE_ADDR‘] != ‚IP-Adresse‚)

wird die cron.php jetzt vollständig ausgeführt und die E-Mails werden auch ohne eine Benutzerinteraktion abgeholt. Bei ‚IP-Adresse‚ trägt man die IP-Adresse des externen Webservers ein.

Quelle: Frank`s Technik Blog