E-Mails automatisch mit phpList versenden
phpList kann Kampagnen planen – aber nur versenden, wenn regelmäßig jemand nachfragt. Dafür ist der Cronjob da.
Warum es ohne Cronjob nicht geht
phpList kann Kampagnen zeitgesteuert versenden. Nur passiert von selbst nichts: Die Software läuft nicht im Hintergrund, sondern nur, wenn jemand sie aufruft.
Ein Cronjob ist genau dieser Jemand – eine Aufgabe auf dem Server, die in festen Abständen eine Adresse aufruft. Ruft er stündlich die Warteschlange auf, gehen geplante Mails mit höchstens einer Stunde Verzögerung raus.
Die englische Anleitung des Herstellers steht im phpList-Handbuch.
Den Prozesslink zusammensetzen
Der Aufruf, der die Warteschlange abarbeitet, sieht so aus:
https://deine-domain.at/lists/admin/?page=processqueue&secret=DEIN_SECRET
Zwei Dinge sind zu ersetzen:
-
Die Adresse – dorthin, wo deine phpList-Installation
liegt. Bei manchen Installationen heißt der Ordner nicht
lists. - Das Secret – zu finden in phpList unter Config → Settings → Security, dort als „remote processing secret". Ohne diesen Schlüssel weist der Aufruf sich nicht aus und wird abgelehnt.
Ob der Link funktioniert, prüfst du am schnellsten, indem du ihn in den Browser eingibst. Es erscheint dann eine Meldung, ob Nachrichten zum Versand bereitstehen – und gegebenenfalls, dass sie gerade versendet wurden.
Es steht in der Adresse und landet damit in Serverprotokollen und im Browserverlauf. Verwende es nirgends sonst, gib die Adresse nicht weiter, und wechsle das Secret, wenn du sie irgendwo eingefügt hast – etwa in einem Forumsbeitrag zur Fehlersuche.
Den Cronjob anlegen
Mit Oberfläche
Die meisten Webhoster bieten dafür eine Verwaltungsseite. Dort trägt man den Zeitpunkt und den Befehl ein – oft genügt die Adresse allein.
Ohne Oberfläche, über die Kommandozeile
Wenn du Zugriff auf die Konsole hast, legst du den Eintrag mit
crontab -e selbst an. Eine Zeile, fünf Zeitangaben, dann
der Befehl:
# Minute Stunde Tag Monat Wochentag Befehl
0 * * * * /usr/bin/php -q /pfad/zu/lists/admin/index.php -p processqueue -c /pfad/zu/lists/config/config.php
Oder, wenn der Aufruf über die Adresse laufen soll:
0 * * * * curl -s "https://deine-domain.at/lists/admin/?page=processqueue&secret=DEIN_SECRET" > /dev/null
Die fünf Sterne stehen für Minute, Stunde, Tag, Monat und Wochentag.
0 * * * * heißt: jede Stunde zur vollen Stunde.
*/15 * * * * hieße: alle fünfzehn Minuten.
Wie oft es sinnvoll ist, hängt nur an einer Frage: Wie lange darf eine geplante Aussendung höchstens warten? Der Abstand sollte kürzer sein als diese Zeit. Manche Anbieter setzen ein Mindestintervall – zwei Stunden sind nicht unüblich; nachlesen lohnt vor dem Einrichten.
Wenn nichts ankommt
Vier Ursachen decken fast alle Fälle ab:
- Das Secret stimmt nicht. Im Browser aufrufen – kommt eine Fehlermeldung statt der Statusanzeige, liegt es daran.
- Der Cronjob läuft nicht. Die meisten Verwaltungsoberflächen führen ein Protokoll. Steht dort kein Eintrag, wurde die Aufgabe nie ausgeführt.
- Die Kampagne ist nicht freigegeben. Ein Entwurf wird nicht versendet, auch nicht mit dem besten Cronjob.
- Das Versandlimit greift. phpList begrenzt, wie viele Nachrichten je Durchlauf rausgehen. Bei einer großen Liste dauert der Versand dann mehrere Durchläufe – das ist kein Fehler.
Wird ein zweiter Durchlauf gestartet, während der erste noch läuft, erkennt phpList das und bricht den neuen ab. Es ist immer nur ein Versandvorgang aktiv. Das ist auch nötig, damit die eingestellten Versandlimits eingehalten werden.
Passt das nicht auf deinen Fall?
Dieser Artikel beantwortet die Frage allgemein – deine ist vermutlich konkreter. Schreib mir kurz, worum es geht. Ich antworte selbst, meist am selben Tag, und es kostet nichts.
Hat dir das geholfen?
Dann sag es weiter. Eine kurze Bewertung dauert dreißig Sekunden und sorgt dafür, dass die Nächsten diese Antwort überhaupt finden.
Passt dazu
- Grundlagen Den richtigen Webhosting-Anbieter finden Der Webhost ist das Grundstück. Ein späterer Umzug ist machbar, aber teuer – deshalb lohnt sich die Entscheidung am Anfang.
- Grundlagen Aufbau einer Website Eine Website ist wie ein Haus: Grundstück, Fundament, Zimmer, Möbel. Der Vergleich trägt weiter, als man zunächst denkt.
- Grundlagen Der Body und der Inhaltsbereich Der eine ist Quelltext, der andere ist das, was man sieht. Beide meinen dasselbe – aus zwei Richtungen.
- Grundlagen Was muss ich bei einer Domain beachten? Kurz, merkbar, ohne Umlaute – und vorher nachsehen, ob jemand anderes Rechte daran hat.