direct_mail

Für die Extension direct_mail kannst du einen CronJob einrichten, damit z.B. alle 5 Minuten überprüft wird, ob ein neuer Newsletter vorhanden ist und auch gleich versendet wird.

Unter Linuxsystemen gibt es dafür den Befehl crontab -e mit dem man die jeweiligen CronJobs verwalten kann. Nicht jeder Provider lässt diesen Befehl zu oder erlaubt das direkte Editieren dieser Datei und ihr müsst die CronTabs über das vom Provider zur Verfügung gestellte Konfigurationstool erstellen.

In dieser Datei könnt ihr nun die Zeile eintragen, die ihr bitte aus der direct_mail Doku entnehmt. Überwiegend sollte hier die Zeile für eine locale-Installation interessant sein.

Normalerweise sollte das Thema CronJob nun erledigt sein, aber bei mir kamen noch ein Haufen Fehler:

"Bad interpreter /usr/bin/php"

Das kann 2 Ursachen haben. Entweder gibt es diese Datei nicht oder es liegt an dem CRLF am Ende jeder einzelnen Zeile in der Datei selbst.

Mit dem Befehl which php könnt ihr herausfinden welche php-Datei ausgeführt wird. Der angezeigte Pfad muss mit dem Pfad in der ersten Zeile der dmail.crontab übereinstimmen. Wenn nicht, bitte ändern. Besteht der Fehler immer noch, dann wird es an dem CRLF liegen. Führt dazu bitte folgenden Befehl aus:

perl -e 'while (<>) {s/\r//;print}' dmailerd.cronphp> dmailerd.cronphp.neu

Danach könnt ihr die dmailerd.cronphp löschen und mit mv dmailerd.cronphp.neu dmailer.cronphp die neue Datei wieder in den originalen Dateinamen umbenennen. Das ist wichtig, da sonst eure Zeile im Crontab nicht mehr funktioniert.

"SAFE MODE restriction" blablabla

Je nach Server haben die Daten, die per FTP hochgeladen wurden einen anderen Besitzer als Dateien, die per Extensionmanager hochgeladen wurden. So war es bei mir der Fall, dass das dmailerd Script keine Berechtigung hatte auf bestimmte Dateien der static_info_table zuzugreifen.

Mit einem einfachen chown -R [WWWUSER].[WWWGRUPPE] ./typo3conf/ext war das Problem dann auch beseitigt. Den [WWWUSER] und die [WWWGRUPPE] müsst ihr selbst herausfinden, da jeder Server anders konfiguriert sein kann.

"another process is already running"

Dazu braucht ihr nur in den ./typo3temp Ordner zu gehen und nach einer Datei zu suchen die ungefähr so heißt: dmailerd.cronphp.lock. Diese müsst ihr dann nur noch löschen und der cronjob sollte endlich funktionieren.