f840b68c9cd07cc1cce8ef6910cc4a5f7cb80f37
Newsletter Generator (TK Wiki)
Dieses Tool erzeugt aus den neuesten Artikeln im Thomas-Krenn-Wiki einen HTML-Newsletter, bietet eine Vorschau im Browser und versendet per SMTP (inkl. Testversand und optionalem Cron-Lauf).
Voraussetzungen
- PHP 8.1+ (empfohlen)
- PHP-Erweiterungen:
curljsonmbstringopenssl- optional:
dom(bessere Artikel-Erkennung)
- Composer
- SMTP-Zugangsdaten
Installation
- Projekt auf den Webserver kopieren.
- Im Projektordner Abhängigkeiten installieren:
composer install
-
Admin-Passwort setzen:
- In
index.php(und ggf.wiki.php) die KonstanteADMIN_PASSWORDändern. - Standardwert
CHANGE_ME_ADMIN_PASSWORDnicht produktiv verwenden.
- In
-
Webserver auf den Projektordner zeigen lassen (Document Root).
Erste Einrichtung im Browser
- Datei im Browser öffnen:
- z. B.
https://deine-domain.tld/index.php
- z. B.
- SMTP- und Newsletter-Felder ausfüllen:
- SMTP Host, Port, Verschlüsselung, Benutzer/Passwort
- Absender (
from_email,from_name) - Empfänger (
recipient_email, optionaltest_recipient_email)
- Auf Einstellungen speichern klicken.
- Mit Vorschau erzeugen Layout prüfen.
- Mit Testnewsletter senden Testversand durchführen.
Monatlicher Versand per Cron
Das Tool unterstützt einen tokenbasierten Cron-Endpunkt.
- Token wird im Admin-Bereich unter Cron Token angezeigt/gesetzt.
- CLI-Beispiel:
php index.php --cron --token='DEIN_CRON_TOKEN'
- Web-Cron-Beispiel:
curl -fsS 'https://deine-domain.tld/index.php?cron=DEIN_CRON_TOKEN' > /dev/null
Hinweis: Der Monatsnewsletter wird pro Zeitraum nur einmal versendet (Status in newsletter-state.json).
Wichtige Dateien
index.php– Hauptdatei (Admin, Vorschau, Versand, Cron)wiki.php– parallele Variante mit gleicher Funktionalitätnewsletter-config.json– gespeicherte Konfigurationnewsletter-state.json– Versandstatus pro Monat
Sicherheitshinweise
ADMIN_PASSWORDimmer sofort ändern.- Projekt nicht öffentlich zugänglich lassen, wenn kein Login aktiv ist.
- SMTP-Zugangsdaten im Dateisystem schützen (Dateirechte/Backup-Zugriff).
Description
Languages
PHP
100%