Newsletter-System

Installation

Schritt für Schritt: Dateien hochladen, Setup aufrufen, ausfüllen, testen. Plane 20–30 Minuten ein.

Was du am Ende hast

  • Ein Anmeldeformular für deine Webseite (mit Bestätigungs-Mail, „Double-Opt-In“).
  • Einen geschützten Admin-Bereich, in dem du Newsletter schreibst und versendest.
  • Abmelde-Links, die für jeden Empfänger automatisch persönlich sind.
  • Einen eingebauten Newsletter-Generator im Admin-Bereich: Du gestaltest Newsletter aus Bausteinen (Texte, Bilder, Knöpfe, Spalten), speicherst sie als Kampagne und kannst sie später wieder bearbeiten.

Teil 1: Was du vorher brauchst

Lege dir diese Dinge bereit, bevor du anfängst. Du findest sie beim Kundenbereich deines Hosters.

Was Wofür Wo findest du es?
Zugang zu den Dateien deines Servers (FTP, SFTP oder Dateimanager) Dateien hochladen Kundenbereich des Hosters
Eine MySQL-/MariaDB-Datenbank (schon angelegt) Abonnenten und Newsletter speichern Hoster-Bereich „Datenbanken“ / „MySQL“
Datenbank-Name, Benutzer, Passwort, Host Verbindung gleiche Stelle
Ein E-Mail-Postfach für den Versand, z. B. newsletter@deine-seite.de Versender der Newsletter Hoster-Bereich „E-Mail“
SMTP-Server, Port, Benutzer, Passwort dieses Postfachs Mails verschicken meist in der Hilfe des Hosters unter „SMTP-Einstellungen“
Die genaue Adresse deiner Seite, z. B. https://www.deine-seite.de Links in den Mails du kennst sie
Ein neues, langes Passwort für den Newsletter-Admin (mindestens 12 Zeichen) Anmeldung im Admin du denkst dir eines aus

Wichtig zu wissen: - Das Setup legt keine Datenbank an, nur die Tabellen darin. Die leere Datenbank musst du vorher beim Hoster erstellen. - Dein Hosting braucht PHP ab Version 7.4 mit den Erweiterungen pdo_mysql und openssl. Das Setup prüft das und sagt dir, wenn etwas fehlt. - Deine Seite sollte über https laufen. Sonst gehen Passwörter im Setup unverschlüsselt durchs Netz.

Teil 2: Was auf den Server muss

Fall A: Deine Seite ist die FWT-Seite (freiewebtools.de-Paket)

  1. Entpacke das Paket FWT_komplett.zip auf deinem Rechner.
  2. Lade alles in den Hauptordner deiner Webseite hoch (dort, wo auch die index.php liegt). Bei einem Update reicht FWT_update_newsletter.zip, gleicher Weg, vorhandene Dateien überschreiben.
  3. Lade nicht hoch bzw. überschreibe nicht deine eigenen Zugangsdaten: includes/db.local.php und tools/newsletter/config/newsletter.local.php (falls sie schon existieren) bleiben unangetastet. Im Paket sind sie bewusst nicht enthalten.

Fall B: Deine Seite ist etwas anderes (z. B. WordPress oder eine eigene Seite)

Du brauchst genau diese zwei Ordner im Hauptordner deiner Seite:

Hauptordner/
├── tools/
│   └── newsletter/      <- kompletter Ordner aus dem Paket
└── vendor/              <- Ordner aus dem Paket (enthält PHPMailer für den Mailversand)
  1. Lade den Ordner tools/newsletter/ komplett hoch (mit allen Unterordnern).
  2. Lade den Ordner vendor/ hoch. Hast du schon einen eigenen vendor/-Ordner (z. B. durch Composer), dann prüfe, ob darin phpmailer/phpmailer und autoload.php liegen. Wenn ja, brauchst du nichts zu ersetzen.
  3. Das Anmeldeformular musst du selbst auf eine Seite einbauen. Die Vorlage liegt in tools/newsletter/partials/subscribe-form.php. Sie wird per include eingebunden und braucht eine PHP-Seite.

Blinde Flecken bei Fall B: - Nach Anmeldung, Bestätigung und Abmeldung werden Besucher auf /?newsletter_status=…#newsletter geschickt, also auf die Startseite. Zeigt deine Startseite keine Meldung dazu an, sehen Besucher nur die normale Startseite. Es funktioniert trotzdem, es fehlt nur die Rückmeldung. - Die Texte der Bestätigungs-Mails und das Aussehen sind auf FWT zugeschnitten.

Zugriffsrechte (in beiden Fällen)

Rechte stellst du im FTP-Programm oder Dateimanager ein (Rechtsklick auf den Ordner, „Dateirechte“).

Ordner Muss PHP hineinschreiben dürfen? Wofür
tools/newsletter/config/ Ja, bis das Setup fertig ist (meist Rechte 755 oder 775 reichen) Setup speichert hier deine Zugangsdaten
tools/newsletter/media/ Ja Bilder, die du im Generator hochlädst
tools/newsletter/data/ Ja Der gespeicherte Quelltext deiner Generator-Newsletter (damit du sie später wieder bearbeiten kannst)

Kann PHP nicht in config/ schreiben, ist das kein Weltuntergang: Das Setup zeigt dir dann den Dateiinhalt an, und du legst die Datei selbst an.

Teil 3: Das Setup aufrufen und ausfüllen

Schritt 0: Freigabe-Datei anlegen

Damit nicht Fremde dein Setup benutzen können, braucht es einen Beweis, dass du Zugriff auf die Dateien hast.

  1. Öffne im FTP-Programm oder Dateimanager den Ordner tools/newsletter/config/.
  2. Lege eine neue, leere Textdatei an. Name genau: setup-freigabe.txt (Achtung: Manche Programme hängen „.txt“ doppelt an. Der Name darf nicht setup-freigabe.txt.txt sein.)
  3. Öffne im Browser: https://www.deine-seite.de/tools/newsletter/setup.php
  4. Siehst du die Überschrift „Newsletter einrichten“ mit fünf Schritten, ist die Freigabe erkannt. Siehst du stattdessen die Aufforderung, die Datei anzulegen, stimmt Ordner oder Name noch nicht.

Schritt 1: Voraussetzungen

Das Setup zeigt Häkchen. Ein rotes ✗ bei pdo_mysql oder PHP-Version stoppt das Setup. Bitte beim Hoster die PHP-Erweiterung bzw. neuere PHP-Version einschalten lassen. Gelbe Hinweise (!) sind nur Warnungen.

Schritt 2: Datenbank verbinden

Das Setup sucht selbst nach den Zugangsdaten deiner Seite (FWT, WordPress, .env).

Variante 1 – Es wird etwas gefunden: 1. Du siehst eine Karte, z. B. „WordPress-Datenbank“ mit Datenbankname und Benutzer. 2. Ist das die Datenbank, die du verwenden willst, klicke „Diese Datenbank testen und verwenden“. 3. Grüne Meldung = fertig. Rote Meldung = lies den Text, er sagt, was los ist.

Variante 2 – Es wird nichts gefunden (oder du willst eine andere):

Feld Was du einträgst
Host Meist localhost. Bei manchen Hostern eine eigene Adresse wie mysql.dein-hoster.de (steht beim Datenbank-Eintrag).
Port Leer lassen. Nur ausfüllen, wenn der Hoster einen anderen als 3306 nennt.
Datenbankname Genau wie beim Hoster angezeigt.
Benutzer Der Datenbank-Benutzer (nicht dein Hoster-Login!).
Passwort Das Passwort dieses Datenbank-Benutzers.

Klicke „Verbindung testen und speichern“.

Typische Fehlermeldungen: - „Benutzername oder Passwort stimmen nicht“: Tippfehler, oder du hast Hoster-Login statt Datenbank-Benutzer eingetragen. - „Die Datenbank mit diesem Namen gibt es nicht“: Lege sie zuerst beim Hoster an. - „Der Datenbank-Server ist nicht erreichbar“: Host prüfen, localhost stimmt nicht bei jedem Hoster.

Schritt 3: Tabellen anlegen

  1. Klicke „Tabellen jetzt anlegen“.
  2. Es entstehen vier Tabellen: Abonnenten, Kampagnen, Versand-Warteschlange, Admin-Zugänge. Vorhandene Daten bleiben unberührt.
  3. Meldet das Setup „Tabellen mit anderem Aufbau“, gibt es in dieser Datenbank schon ein anderes (altes) Newsletter-System mit gleichen Tabellennamen. Das Setup ändert das aus Sicherheitsgründen nicht. Nimm dann eine andere, leere Datenbank (Knopf „Andere Datenbank wählen“) oder benenne die alten Tabellen in phpMyAdmin um (vorher Sicherung machen).
  4. Meldet es einen Rechte-Fehler, fehlt dem Datenbank-Benutzer das Recht „CREATE“. Das stellt der Hoster im Datenbank-Bereich ein.

Schritt 4: Admin-Zugang anlegen

  1. Benutzername: 3–40 Zeichen (Buchstaben, Zahlen, Punkt, Bindestrich, Unterstrich).
  2. Passwort: mindestens 12 Zeichen, zweimal eingeben.
  3. Notiere dir das Passwort sicher. Das Setup speichert nur einen Hash und kann es dir später nicht anzeigen.

Schritt 5: Mail-Versand und Adresse der Seite

Feld Was du einträgst
SMTP-Server Vom Hoster, z. B. smtp.dein-hoster.de
Port 587 bei Verschlüsselung „tls“, 465 bei „ssl“
SMTP-Benutzer Meist die komplette E-Mail-Adresse des Postfachs
SMTP-Passwort Passwort des Postfachs
Verschlüsselung „tls“ (Standard) oder „ssl“, so wie der Hoster es angibt
Absender-Adresse z. B. newsletter@deine-seite.de (sollte zum Postfach gehören)
Absender-Name Was Empfänger als Absender sehen, z. B. „Meine Firma“
Adresse der Seite https://www.deine-seite.de, ohne Schrägstrich am Ende und ohne Pfad
  1. Klicke zuerst „Nur Mail-Server testen“. Das prüft die Anmeldung, es wird keine Mail gesendet.
  2. Klappt es, klicke „Speichern und abschließen“.
  3. Du siehst jetzt „Der Newsletter ist eingerichtet. Dieses Setup ist jetzt gesperrt.“

Die „Adresse der Seite“ ist wichtig: Sie steckt in jedem Bestätigungs- und Abmelde-Link. Steht dort die falsche Adresse (z. B. ohne www, obwohl deine Seite nur mit www läuft), führen die Links ins Leere.

Teil 4: Nach dem Setup – das musst du noch tun

Reihenfolge einhalten:

  1. Freigabe-Datei prüfen: Das Setup löscht setup-freigabe.txt selbst. Liegt sie noch im Ordner config/, lösche sie von Hand.
  2. Schutz prüfen: Rufe im Browser https://www.deine-seite.de/tools/newsletter/config/newsletter.local.php auf. Du musst eine Fehlerseite („403 Verboten“) oder eine leere Seite sehen, niemals Text mit Passwörtern. Der Schutz kommt über die mitgelieferte .htaccess und funktioniert nur bei Apache-Servern. Bei anderen Servern (z. B. nginx) frage deinen Hoster nach einer Sperre für den Ordner tools/newsletter/config/.
  3. Admin testen: Öffne https://www.deine-seite.de/tools/newsletter/admin/login.php und melde dich an. - Gleich danach: E-Mail-Code einschalten. Nach der ersten Anmeldung landest du automatisch auf der Seite „Sicherheit“. Trage dort eine E-Mail-Adresse ein, tippe den Code aus der Mail ein – fertig. Ab dann braucht jede Anmeldung Passwort und einen 6-stelligen Code per Mail (10 Minuten gültig, nur einmal, nach 5 falschen Eingaben gesperrt). - Nimm ein Postfach, das nicht auf demselben Server liegt wie die Seite, und das du selbst mit einem starken Passwort sicherst. Ein Code im Postfach ist nur so sicher wie das Postfach. - Notausgang: Kommt keine Mail mehr an (z. B. kaputte Mail-Einstellungen), kannst du dich nicht anmelden. Dann per FTP die Datei tools/newsletter/config/newsletter.2fa.local.php löschen. Danach gilt wieder nur das Passwort. Richte den Code dann neu ein.
  4. Anmeldung testen: Trage auf der Webseite eine eigene Adresse ins Formular ein. Es muss eine Bestätigungs-Mail kommen (auch im Spam-Ordner nachsehen). Klicke den Link. Unter „Abonnenten“ im Admin steht die Adresse jetzt als bestätigt.
  5. Probe-Newsletter: Lege im Admin eine Kampagne an und versende sie an dich selbst (nur du bist bestätigter Abonnent). Prüfe Aussehen und Abmelde-Link, ideal in mehreren Mail-Programmen (z. B. Gmail, Outlook, Handy).
  6. Cron-Job einrichten (für Terminierung und große Listen): Lege beim Hoster unter „Cronjobs“ einen Eintrag an: - Befehl: php /voller/pfad/zu/deiner/seite/tools/newsletter/admin/cron-send.php - Intervall: alle 5 Minuten - Den vollen Pfad nennt dir der Hoster (oft in der Cronjob-Hilfe). Ohne Cron werden geplante Newsletter nicht gesendet. Auch „Jetzt versenden“ im Admin schickt pro Klick nur die ersten 25 Mails; den Rest übernimmt der Cron. Bei mehr als 25 Abonnenten ist der Cron-Job Pflicht.
  7. Optional, empfohlen: Lösche tools/newsletter/setup.php, wenn du das Setup nie mehr brauchst. Die Datei sperrt sich zwar selbst, aber was nicht da ist, kann niemand benutzen.

Newsletter mit dem eingebauten Generator gestalten

  1. Melde dich im Newsletter-Admin an (/tools/newsletter/admin/login.php).
  2. Klicke auf „+ Newsletter gestalten (Generator)“.
  3. Baue den Newsletter aus Bausteinen. Im Baustein „Fuß“ ist bei „Abmelden“ schon das „FWT-Newsletter-System“ gewählt. Lass das so, denn nur damit bekommt jeder Empfänger seinen persönlichen Abmelde-Link.
  4. Klicke „In Kampagne speichern“. Es entsteht ein Entwurf. Es wird nichts versendet. Klickst du erneut auf „In Kampagne speichern“, wird dieselbe Kampagne aktualisiert (es entsteht kein zweiter Entwurf).
  5. Zum späteren Ändern: In der Kampagnen-Liste auf „Im Generator bearbeiten“ klicken. Betreff, Termin und das Senden machst du über „Betreff, Termin, Senden“.
  6. Schneller Weg: Im Generator gibt es den Knopf „Speichern und zum Versand“. Er speichert den Newsletter und öffnet direkt die Kampagnen-Seite, dort steht „Jetzt versenden“ (mit Rückfrage). Es wird nie ohne deinen Klick gesendet.

Ansicht: Formular links, Vorschau rechts

Auf Bildschirmen ab etwa 1200 Pixel Breite (normaler Laptop/Monitor) steht die Vorschau rechts neben dem Formular und bleibt beim Scrollen stehen. Ist der Newsletter länger als die Vorschau, scrollst du in der Vorschau selbst. Darunter bleiben die Knöpfe (Speichern, Kopieren …) sichtbar. Auf Tablet und Handy steht alles wie bisher untereinander.

Web-Version („Im Browser ansehen“)

Wird eine Mail im Mail-Programm kaputt angezeigt, öffnet der Link im Fuß den Newsletter als Webseite.

  1. Im Baustein „Fuß“ ist bei „Abmelden“ das FWT-Newsletter-System gewählt. Dann ist der Haken „Link ‚Im Browser ansehen‘ einbauen“ automatisch gesetzt. Du musst nichts weiter tun.
  2. Beim Versand setzt das System für jede Kampagne die Adresse ein, z. B. https://deine-seite.de/tools/newsletter/view.php?c=12&k=…. Für Leser steht die Seite ab dem Moment bereit, in dem die Kampagne versendet wird. Vorher (Entwurf, Geplant) sieht sie nur der angemeldete Admin als Vorschau.
  3. Gleich nach „In Kampagne speichern“ zeigt der Generator den Link „Web-Version ansehen“. Auch in der Kampagne steht unter dem Text „Web-Version: Seite öffnen“.

Gut zu wissen: - Wer den Link hat, sieht die Seite. Er ist nicht zu erraten (geheimer Schlüssel) und für Suchmaschinen gesperrt, aber wer eine Mail weiterleitet, leitet auch den Link weiter. - Persönliches steht nicht drin. Der Abmelde-Link ist je Empfänger persönlich und wird auf der Web-Seite durch den Hinweis ersetzt, zum Abbestellen den Link in der E-Mail zu benutzen. - Der geheime Schlüssel liegt in config/newsletter.secret.local.php (wird automatisch angelegt). Nicht löschen und beim Umzug mitnehmen, sonst funktionieren die Links bereits versendeter Newsletter nicht mehr. - Newsletter, die vor dieser Funktion versendet wurden, haben keinen Link.

Eigene Vorlage speichern (damit du nicht jedes Mal von vorn anfängst)

Die Beispieltexte („Tischlerei Beispiel“) sind nur für den allerersten Start gedacht. So machst du daraus deinen eigenen Newsletter:

  1. Gestalte im Generator einmal alles, was immer gleich bleibt: Kopf mit Name und Logo, Layout, Farben, Schrift, Fuß mit deinen Absenderangaben, Social-Links.
  2. Klicke auf „Als meine Vorlage speichern“, gib einen Namen ein (z. B. „Monatsbrief“) und bestätige die Frage, ob es der Standard sein soll.
  3. Ab jetzt startet jeder neue Newsletter mit deiner Vorlage. Du änderst nur noch Betreff, Texte und Bilder.
  4. Mehrere Vorlagen (bis zu 20) wählst du oben im Feld „Vorlage“ unter „Meine Vorlagen“ aus. Mit „Als Standard für neue Newsletter“ wechselst du den Standard (nochmal klicken hebt ihn auf), mit „Gewählte Vorlage löschen“ räumst du auf.

Was nicht in der Vorlage steht: Betreff und Vorschautext. Die ändern sich bei jeder Ausgabe, und so geht nie ein alter Betreff versehentlich raus. Bilder vom Rechner werden beim Speichern auf dem Server abgelegt (Ordner media/). Die Vorlagen selbst liegen in data/library.json. Dafür muss data/ beschreibbar sein.

Gut zu wissen: Bearbeiten geht nur, solange die Kampagne Entwurf oder Geplant ist. Kampagnen, die du mit einer älteren Version übergeben hast, haben keinen gespeicherten Quelltext und lassen sich nicht im Generator öffnen. Wenn du den Ordner data/ nicht beschreibbar machst, klappt das Speichern der Kampagne trotzdem, nur das spätere Bearbeiten im Generator nicht.

Teil 5: Wenn etwas nicht klappt

Problem Mögliche Ursache Lösung
Setup zeigt nur die Aufforderung, eine Datei anzulegen Freigabe-Datei fehlt, falscher Ordner oder Name Ordner tools/newsletter/config/, Name setup-freigabe.txt (nicht .txt.txt)
Setup zeigt „gesperrt“, obwohl du Einstellungen ändern willst Setup ist fertig Datei tools/newsletter/config/newsletter.local.php mit einem Texteditor ändern
Setup komplett neu starten – Datei newsletter.local.php (und ggf. newsletter.db.local.php) im Ordner config/ umbenennen, Freigabe-Datei neu anlegen. Die Datenbank-Daten bleiben bestehen
„Ordner config ist nicht beschreibbar“ Dateirechte Rechte des Ordners auf 755/775 setzen, oder Datei von Hand anlegen (das Setup zeigt den Inhalt)
Leere weiße Seite beim Aufruf von setup.php PHP-Fehler, Version zu alt PHP-Version beim Hoster erhöhen (mind. 7.4), Fehlerprotokoll des Hosters ansehen
Bestätigungs-Mail kommt nicht an SMTP falsch, Spam-Ordner, fehlende Absender-Prüfung (SPF/DKIM) beim Hoster Im Setup „Nur Mail-Server testen“; Spam-Ordner prüfen; beim Hoster SPF/DKIM für die Domain einschalten
Link in der Mail führt auf eine falsche Adresse „Adresse der Seite“ falsch site_base_url in newsletter.local.php korrigieren
„Der Newsletter ist noch nicht eingerichtet“ Setup nicht gemacht oder Konfigurationsdatei fehlt setup.php aufrufen
Anmeldung funktioniert, Besucher sehen keine Rückmeldung Startseite wertet ?newsletter_status= nicht aus (Fall B) Meldung auf der Startseite einbauen oder so lassen

Teil 6: Wichtige ehrliche Hinweise

  • Zustellung: Dass Mails im Posteingang landen (nicht im Spam), hängt vor allem an SPF, DKIM und DMARC deiner Domain. Das richtest du beim Hoster ein. Das Setup kann es nicht prüfen. Große Anbieter (Gmail, Yahoo) verlangen bei vielen Empfängern solche Signaturen.
  • Abmeldung: Der Abmelde-Link löscht den Abonnenten sofort. Manche Mail-Dienste klicken Links automatisch an (Virenscanner). Das kann ungewollt abmelden. Erwarte daher gelegentlich Abmeldungen, die keine echten sind.
  • Rechtliches: Für Newsletter gelten Regeln (Einwilligung, Impressum und Datenschutz im Formular verlinken, Abmeldung ermöglichen). Diese Anleitung ist keine Rechtsberatung. Prüfe die Texte im Formular und in den Mails auf dich und deine Seite.
  • Sicherung: Mache regelmäßig eine Sicherung deiner Datenbank. Sie enthält die E-Mail-Adressen deiner Abonnenten. Bewahre sie geschützt auf.
  • Passwörter: Die Dateien newsletter.local.php und newsletter.db.local.php enthalten Zugangsdaten. Gib sie nie weiter und packe sie nie in ZIP-Dateien, die du verschickst.