Files

75 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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).