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:
composer install
  1. Admin-Passwort setzen:

    • In index.php (und ggf. wiki.php) die Konstante ADMIN_PASSWORD ändern.
    • Standardwert CHANGE_ME_ADMIN_PASSWORD nicht produktiv verwenden.
  2. 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:
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ä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).
Description
No description provided
Readme 778 KiB
Languages
PHP 100%