# 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: - `curl` - `json` - `mbstring` - `openssl` - optional: `dom` (bessere Artikel-Erkennung) - Composer - SMTP-Zugangsdaten ## Installation 1. Projekt auf den Webserver kopieren. 2. Im Projektordner Abhängigkeiten installieren: ```bash composer install ``` 3. Admin-Passwort setzen: - In `index.php` (und ggf. `wiki.php`) die Konstante `ADMIN_PASSWORD` ändern. - Standardwert `CHANGE_ME_ADMIN_PASSWORD` **nicht** produktiv verwenden. 4. Webserver auf den Projektordner zeigen lassen (Document Root). ## Erste Einrichtung im Browser 1. Datei im Browser öffnen: - z. B. `https://deine-domain.tld/index.php` 2. SMTP- und Newsletter-Felder ausfüllen: - SMTP Host, Port, Verschlüsselung, Benutzer/Passwort - Absender (`from_email`, `from_name`) - Empfänger (`recipient_email`, optional `test_recipient_email`) 3. Auf **Einstellungen speichern** klicken. 4. Mit **Vorschau erzeugen** Layout prüfen. 5. 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: ```bash php index.php --cron --token='DEIN_CRON_TOKEN' ``` - Web-Cron-Beispiel: ```bash 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ät - `newsletter-config.json` – gespeicherte Konfiguration - `newsletter-state.json` – Versandstatus pro Monat ## Sicherheitshinweise - `ADMIN_PASSWORD` immer sofort ändern. - Projekt nicht öffentlich zugänglich lassen, wenn kein Login aktiv ist. - SMTP-Zugangsdaten im Dateisystem schützen (Dateirechte/Backup-Zugriff).