AddOn
MultiNewsletter
Beschreibung
Ein Newslettersystem für mehrere Newslettergruppen und Sprachen. Er geht geschickt mit Versandlimits von Mails auf Servern um.Komfortablere Benutzerverwaltung, Benutzerim- und export,
sprachenabhänige Standardinhalte, personalisierte E-Mails, automatische Erkennung von Server Timeouts, automatischer Reload der Versandseite bei Abbruch und ein Beispieltemplate.
Eine Besonderheit gegenüber allen anderen Newsletter Addons ist eine Einstellungsmöglichkeit für limitierten Mailversand bei Hostern wie 1&1. Dieses AddOn bewältigt gtestet deutlich über 25000 Newsletter Empfänger trotz der Begrenzung von 100 Mails in 5 Minuten durch den Hoster. Natürlich alles Vollautomatisch. In Redaxo 5 nun auch mit MailChimp Anbindung und der Möglichkeit Anhänge zu verschicken. Ab Version 3.2.0 auch Versand per CronJob mit abschließender Adminmail möglich.
HINWEIS: Bei unerwünschtem Newsletterversand können in Deutschland Schadenersatzforerungen in mehreren Tausend Euro entstehen. Deshalb: Benutzung auf eigene Gefahr!
github.com/FriendsOfREDAXO/multinewsletter
Umsetzung
Versionen
3.8.4
- Wartung: Interne CI-Dateien im Verzeichnis
.github(GitHub Actions, Dependabot) werden nicht mehr mit dem Installer-Paket ausgeliefert.
3.8.3
- Bugfix: Beim manuellen Newsletter-Versand wurde fälschlicherweise der Hinweis angezeigt, dass ein Versand im Hintergrund läuft. Ursache war, dass die Abfrage der Autosend-Archive (
NewsletterManager::getArchivesToSend(false, true)) auch manuelle Sendeliste-Eintraege (autosend = 0) zurückgab. Die Abfrage liefert in diesem Modus jetzt ausschließlich Autosend-Archive (autosend = 1, inkl. zukünftig geplanter).
3.8.2
- Bugfix: Beim Aufruf des Reiters "Import" wurde faelschlicherweise die Meldung "CSRF-Token ungueltig" angezeigt, obwohl noch kein Formular abgesendet wurde. Die Pruefung greift jetzt nur noch bei einem tatsaechlichen Import.
- Bugfix: Betreff und Absendername in der Archivliste wurden doppelt HTML-kodiert dargestellt (z. B. "l'acier"). Die Werte werden jetzt korrekt angezeigt.
3.8.1
- Backend: CSRF-Schutz fuer Import, Einstellungen sowie mutierende Gruppen- und Archivaktionen ergaenzt.
- Backend: CSRF-Schutz fuer das Multi-Aktions-Formular der Benutzerverwaltung (Loeschen, Statuswechsel, Sprache, Gruppenzuweisung, Export) ergaenzt.
- Sicherheit: Suche und Export der Benutzerverwaltung nutzen jetzt Parameter-Bindung fuer das Suchstichwort und eine Whitelist fuer Sortierfeld und -richtung, damit ueber URL- und Sessionwerte keine SQL-Anfragen manipuliert werden koennen.
- Bugfix: Beim geplanten Versand per Cronjob wird ein manuell gesetztes Sendedatum nur noch für den gerade vorbereiteten Newsletter gesetzt und nicht mehr für alle Einträge in der Sendeschleife.
- Bugfix: Beim manuellen Sofortversand werden auf später geplante (Autosend-)Newsletter nicht mehr mitgesendet und dadurch aus der Sendeliste gelöscht. Der manuelle Versand berücksichtigt jetzt ausschließlich Einträge ohne Autosend.
- Bugfix: Die Funktion "Alles abbrechen" im manuellen Versand löscht keine geplanten Autosend-Newsletter mehr. Es werden nur noch manuelle Sendeliste-Einträge und verwaiste, ungesendete Archive entfernt.
- Bugfix: Fehler in den Modulen 80-3 und 80-8 bei der Backend-Ausgabe ohne POST-Gruppenauswahl behoben.
- Bugfix: In den Anmeldemodulen 80-1 und 80-6 wird die aus
rex_var::toArray()gelesene Gruppen-ID-Liste jetzt gegennullabgesichert, damit ohne gesetzte Gruppen-Auswahl keinTypeErrorincount()/foreachauftritt. - Verbesserung: BS5-Module 80-6 bis 80-10 mit mehr vertikalem Abstand zwischen den Formularfeldern versehen.
- Sicherheit: Newsletter::save() und User::save() schreiben jetzt mit gebundenen Parametern. Das bisherige addslashes() auf Betreff, Absendername sowie Vor-/Nachname/Telefon entfällt damit.
- Sicherheit: Anmeldemodule 80-1, 80-3, 80-6 und 80-8 escapen reflektierte POST-Werte (Anrede, Grad, Vorname, Nachname, E-Mail, Telefon), Gruppen-IDs werden in Formularattributen als Integer gecastet und Gruppennamen aus der Datenbank werden vor der Ausgabe escaped.
- Intern: PHPDoc-Parametertyp von
User::factory()für$titleaufstringkorrigiert (entsprach nicht der Methodensignatur; keine Verhaltensänderung). - Intern: Typisierung der Mailchimp-Anbindung präzisiert –
Mailchimp::request()deklariert den Rückgabetyp jetzt alsarray<array-key,mixed>, der Fehlertext castetdetailexplizit zustring, undMailchimp::getLists()liefert eine saubere Liste ausid/name-Einträgen (keine Verhaltensänderung für gültige API-Antworten).
3.8.0
- Neue Module 80-6 bis 80-10 als Bootstrap-5-Varianten der bestehenden Beispielmodule hinzugefügt.
- Module 80-1 bis 80-5 als "(BS4, deprecated)" markiert. Die BS4-Varianten werden im nächsten Major Release entfernt.
- Benötigt d2u_helper >= 2.1.0.
- Bugfix: Telefon Feld auch in JSON für YForm hinzugefügt.
3.7.0
- Versand per Cronjob: Information über geplantes Versanddatum hinzugefügt.
- Telefonnummer im Benutzerprofil hinzugefügt.
- FAQ zum automatischen Versenden um bestimmte Uhrzeiten erweitert.
3.6.8
- Header beim Versand von automatischen Mails gesetzt, um automatisch Antworten wie Abwesenheitsnotizen zu vermeiden.
- List-Unsubscribe Header beim Versand von Newslettern gesetzt, wenn Abmeldelink in den Einstellungen vorhanden ist.
3.6.7
- Modul 80-4 "MultiNewsletter YForm Anmeldung": Ergebnismeldung Bootstrap konform formatiert.
- Sortierung der manuellen Benutzerauswahl bei Versand von Newslettern um E-Mail-Adresse ergänzt.
- Bugfix: PHP Befehl bei Installation des Cronjobs wird nun korrekt gespeichert.
3.6.6
- Bugfix: Fehler im Modul 80-2 "MultiNewsletter Abmeldung" behoben.
- Bugfix: Fehler im Modul 80-3 "MultiNewsletter Anmeldung nur mit Mail" behoben.
- Bugfix: Fehler im Modul 80-4 "MultiNewsletter YForm Anmeldung" behoben und Platzhalter entfernt.
3.6.5
- Bugfix: Import gleicher E-Mail-Adressen mit unterschiedlicher Groß- und Kleinschreibung unterbunden.
- Bugfix Modul 80-1 "MultiNewsletter Anmeldung mit Name und Anrede": nach der rexstan Überarbeiten hatten sich Fehler bei den Gruppen eingeschlichen.
- Dokumentation zu Pflichtfelder beim Import verbessert.
3.6.4
- Bugfix: Voreinstellungen für Testmails zeigte die gespeicherte Anrede nicht korrekt an.
3.6.3
- Bugfix: Ersetzungen der Benutzerdaten im Frontent schlug fehl. Platzhalter für Newsletterlink wurde automatisch angepasst.
- Bugfix: Beispieltemplate in der Hilfe wurde nicht angezeigt.
3.6.2
Bugfix: Filter im Backend der Benutzerliste funktioniert nun auch Auswahl von Guppe und Status @jfax
3.6.1
- Bugfix bei der manuellen Artikelauswahl im Newsletterversand.
- Kleinere Rexstan Anpassungen.
3.6.0
MultiNewsletter Release
- Transfer des Repos zu FriendsOfRedaxo.
- Vorbereitung auf R6: Folgende Klassen werden ab Version 2 dieses Addons umbenannt. Schon jetzt stehen die neuen Klassen für die Übergangszeit zur Verfügung:
MultinewsletterGroupwird zuFriendsOfRedaxo\MultiNewsletter\Group.MultinewsletterMailchimpwird zuFriendsOfRedaxo\MultiNewsletter\Mailchimp.MultinewsletterMailchimpExceptionwird zuFriendsOfRedaxo\MultiNewsletter\MailchimpException.MultinewsletterNewsletterwird zuFriendsOfRedaxo\MultiNewsletter\Newsletter.MultinewsletterNewsletterManagerwird zuFriendsOfRedaxo\MultiNewsletter\NewsletterManagerMultinewsletterUserwird zuFriendsOfRedaxo\MultiNewsletter\User.MultinewsletterUserListwird zuFriendsOfRedaxo\MultiNewsletter\Userlist.- Folgende interne Klassen wurden wurden ebenfalls umbenannt. Hier gibt es keine Übergangszeit, da sie nicht öffentlich sind:
D2UMultiNewsletterModuleswird zuFriendsOfRedaxo\MultiNewsletter\Module.multinewsletter_cronjob_cleanupwird zuFriendsOfRedaxo\MultiNewsletter\CronjobCleanup.multinewsletter_cronjob_senderwird zuFriendsOfRedaxo\MultiNewsletter\CronjobSender.
- Addon komplett mit rexstan Level 9 überarbeitet.
- WICHTIG: Anreden um die diverse Anrede Mx. und auch ohne Anrede erweitert. In den Einstellungen -> Übersetzungen bitte für diese beiden Felder ergänzen und speichern.
- E-Mails nach Cronjob Versand enthalten nun auch Vor- und Nachnamen der Empfänger, sofern diese vorhanden sind.
- Modul 80-4 "MultiNewsletter YForm Anmeldung": unterstützt jetzt auch das Addon YForm Spamprotection.
3.5.5
- Bugfix beim CSV Import: IP Adressfilter gab manchmal null zurück, erwartet wurde aber ein leerer String.
- Bugfix: wenn in den Einstellungen festgelegt war, dass der Artikel per Socket ausgelesen werden soll, wurden personenbezogene Ersetzungen nicht ersetzt.
- Modul 80-3 "MultiNewsletter Anmeldung nur mit Mail": Fehler beim Zuweisen der Anrede des Users behoben.
3.5.4
- Modul 80-4 "MultiNewsletter YForm Anmeldung": Fehler im Spamschutz / CSRF Schutz behoben.
- Modul 80-5 "MultiNewsletter YForm Abmeldung": Fehler im Spamschutz / CSRF Schutz behoben.
3.5.3
- Bugfix: Einige Einstellungen wurden nicht korrekt angezeigt, obwohl sie gespeichert waren.
- Bugfix: Bei aktivierter Option "Usertabelle im YForm Table-Manager verfügbar machen" in den Einstellungen wird nun das Benutzer Tab trotzdem angezeigt, obwohl die Daten auch über den YForm Tablemanager bearbeitet werden können.
3.5.2
- Bugfix: Import Seite wird wieder angezeigt.
- Bugfix: Wenn die Antwort An Adresse nicht gesetzt ist, kam es unter bestimmten Umständen beim Versenden der Testnachricht zu einem Fatal Error.
3.5.1
3.5.1
- Update Installer Action
3.5.0
- Import- und Exportfunktion der Einstellungen (@dpf-dd)
- Wieder ein paar rexstan Verbesserungen.
3.4.1
- Modul 80-4 "MultiNewsletter YForm Anmeldung": Formular mit Formularnamen versehen um bessere YForm Spamprotection Kompatibilität bei mehreren Formularen auf einer Seite herzustellen.
- Modul 80-5 "MultiNewsletter YForm Abmeldung": Einstellung der Breite des Blocks funktioniert jetzt korrekt. Außerdem FOrmular mit Formularnamen versehen um bessere YForm Spamprotection Kompatibilität bei mehreren Formularen auf einer Seite herzustellen.
3.4.0
- Testmails können nun auch mit Anhängen versehen werden.
- Bugfix: Dateinamen der Anhänge sind nun gleich wie im Medienpool.
3.3.1
- Anpassungen der Archivseite an den Dark Mode.
- Absender zur Übersicht der Archivseite hinzugefügt.
- Sprachcode statt Sprach-ID auf der Übersichtsseite der Archive angezeigt.
- Modul 80-4 "MultiNewsletter YForm Anmeldung": Datenschutzhinweis wurde doppelt angezeigt.
3.3.0
- .github Verzeichnis aus Installer Action ausgeschlossen.
- Bugfix: wenn ein Empfänger während dem Versandvergang amgemeldet hat, konnte der Newsletter nie zuende verschickt werden.
- Bugfix: Es war nicht möglich mehrere Newsletter parallel per Cronjob zu versenden, da der vorherige Newsletter gelöscht wurde.
- Installationsdateien auf Redaxo Standard umgestellt
- Import Tabellen aus Redaxo 4 entfernt.
- Autosend Archiv Übersicht mit Möglichkeit zum Abbrechen auf der Newsletterseite programmiert.
3.2.9
- Anpassungen an Publish Github Release to Redaxo.
- Notice beim Versand entfernt, wenn versehentlich keine Gruppe ausgewählt wurde.
- Beschreibung der YForm Option in den Einstellungen verbessert.
- Überschrift Archiv korrigert.
- 2 PHP Notices auf der Archivseite entfernt.
- Modul 80-4 "MultiNewsletter YForm Anmeldung": Notice entfernt.
- Modul 80-4 "MultiNewsletter YForm Anmeldung": Erstellungsdatum per CSS ausgeblendet (siehe https://github.com/yakamara/redaxo_yform/issues/1158).
3.2.8
- Notice bezüglich Anhänge entfernt.
- Whoops beim Versand wenn ein Absendername ein einfaches Anführungszeichen hat behoben.
- Whoops beim Zurücksetzen des Versands unter MySQL 8.
- Bugfix: Versandeinstellungen für eigenen SMTP Server wurden bei Aktivierungsmail ignoriert.
- Der Versand für fehlgeschlagene Empfänger kann aus dem Archiv heraus wiederholt werden.
- Warnmeldung eingebaut, wenn wichtige Eintellungen noch nicht festegelegt sind, die für die Verwendung des Addons Voraussetzung sind.
- Modul 80-1, 80-2 und 80-3 mit Eingabefelder im Redaxo Stil.
- Modul 80-1 "MultiNewsletter Anmeldung mit Name und Anrede": Doppleter Versand bei von Anmeldemails bei Seitenreload behoben.
- Modul 80-4 "MultiNewsletter YForm Anmeldung": Aktivierungsschlüssel war nicht mit anderen Modulen kompatibel.
3.2.7
- Möglichkeit in einer Gruppe eine Antwort An Adresse hinzuzufügen.
- Benötigt Redaxo >= 5.10, da die neue Klasse rex_version verwendet wird.
- Bugfix: Behebt Fehler wenn YRewrite verwendet wird und kein Startartikel in Redaxo angegeben ist.
- Bugfix: Namen können nun auch ein einzelnes Anführungszeichen haben.
- Backend: Einstellungen enthalten jetzt eine Option die es ermöglicht einzustellen wie der Artikel ausgelesen werden soll, ob Redaxo intern (ohne Output Filter Addons) oder per Socket (mit allen Addons). Dabei ist Redaxo Intern aus Gründen der Rückwärtskompatibilität Standard.
- Backend: Einstellungen, Setup und Hilfe Tabs rechts eingeordnet um sie vom Inhalt besser zu unterscheiden.
- Frontend: Output Filter ist nur aktiviert wenn Parameter replace_vars=1 in der URL enthalten ist.
3.2.6
- Bugfix: CronJob Log Erfolgsmeldung wurde mehrfach ins Log geschrieben.
- Bugfix: YForm Module führten zu fatal error wenn Konfiguration noch nicht gespeichert war.
- Bugfix: Artikelname wurde im Backend beim manuellen Versand unter bestimmten Umständen falsch angezeigt, wenn der Versand unterbrochen wurde und man sich aus Redaxo ausgeloggt hatte.
- Bugfix: Ersetzungsvariablen +++LINK_PRIVACY_POLICY+++ und +++LINK_IMPRESS+++ wurden immer nur mit dem Link der Standardsprache ersetzt.
- Verhindert das Löschen von Artikeln wenn sie noch in den MultiNewsletter Einstellungen oder den Gruppen Einstellungen verwendet werden.
- Artikel wird nun per HTTP Socket gelesen um Addons wie Blöcks, XOutputFilter und SProg nutzbar zu machen. Sollte ein Socket Aufbau fehlschlagen wird der Inhalt des Artikels wie bisher ausgelesen.
3.2.5
- Bugfix: wenn Titel des Newsletters ein ' enthielt gab es einen fatal error.
- Bugfix: Installation schlug wegen utf8mb4 Konvertierung fehl.
3.2.4
- Bugfix Versand: Fatal Error behoben wenn keine Empfänger ausgewählt waren.
- Bugfix Import: war ein Leerzeichen beim Import vor oder nach einer E-Mailadresse eingefügt, wurde bei einem doppelten Eintrag ein fatal error angezeigt.
- Verbesserte Übersetzungen ausstehender Newsletter.
- YRewrite Multidomain support.
- Datenbanktabellen zu utf8mb4 konvertiert.
3.2.3
- YForm Beispielmodule hinzugefügt (YForm 3 wird benötigt).
- Bei Deinstallation wurde eine Tabelle nicht gelöscht.
- Bugfix Standardtexte.
- Module für Anmeldung 80-1 und 80-3: PHP 7.2 Warning entfernt und Bugfix Speichern Anmeldedatum.
3.2.2
- Bugfix Issue #29.
- Bugfix: Deaktiviertes Addon zu deinstallieren führte zu fatal error (#30).
- Bugfix: Leerer Titel führt zu Fehler beim Speichern (#31).
- Bugfix: CronJob wird - wenn installiert - nicht immer richtig aktiviert.
3.2.1
- Achtung Entwickler: Die Klasse MultiNewsletterAbstract gibt es nicht mehr. Die Klasse MultinewsletterUser unterstützt nun die Funktionen getValue(), setValue() und getId() nicht mehr.
- Bugfix Issue #28
- Kleine Verbesserungen am Template: Einstellungen aus dem D2U Helper Addon werden übernommen.
- DSGVO Anpassung: CronJob zum automatischen Entfernen der Adressen von Empfängern in mehr als 4 Wochen alten Newslettern hinzugefügt. Außerdem werden Abonnenten gelöscht, die ihre Anmeldung innerhalb von 4 Wochen nicht aktiviert haben. Dieser neue CronJob kann in den Einstellungen aktiviert werden.
- Klasse MultiNewsletterGroupList in Klasse MultiNewsletterGroup integriert.
- Versandoptionen in den Einstellungen werden nur noch eingeblendet wenn ja ausgewählt ist.
- Benachrichtigung bei Autoversand verbessert.
3.2.0
- Modul 80-2 Abmeldung Parameter zur Abmeldung umbenannt, damit auf einer Seite das An- und Abmeldemodul verwendet werden kann
- Newsletter kann über Backend per CronJob versendet werden.
- Methode zum automatischen Versand per API steht zur Verfügung: MultinewsletterNewsletterManager::autosend()
- Administrator E-Mailadresse in den Einstellungen hinzugefügt.
- Ausstehende Empfänger werden nun in eigener Tabelle gespeichert.
- Bugfix: Methode getName() in NewsletterGroup lieferte leeren Wert.
- DSGVO Hinweis im Backend wenn MailChimp genutzt wird.
- Activationkey von int auf varchar(45) geändert.
- Bugfix: Backslashes im Templatecode wurden versehentlich entfernt.
- Daten bezüglich 1&1 aktualisiert.
- Fehlermeldungen beim Versand verbessert.
- Bugfix: bei der Webansicht von manchen Providern wie GMX wurden Links nicht verlinkt wenn es sich nicht um Links mit der kompletten URL handelt. Ab sofort wird immer die komplette URL ergänzt, falls sie fehlt.
- Bugfix: Image Manager URLS beinhalten ein "&". Dieses "&" wurde bisher kodiert und manche Mailprogramme konnten die Bilder dann nicht mehr laden. Jetzt werden alle "&" vor dem Versand zur Sicherheit decodiert.
3.1.6
- Aktion beim Abmelden ist jetzt immer "löschen". Die Option den Status auf abgemeldet zu setzen wurde wegen der DSGVO entfernt. ACHTUNG: Nutzer, deren Status abgemeldet (= 2) gesetzt ist werden beim Update auf diese Version gelöscht.
- Option Sprachfallback deaktivieren hinzugefügt (Danke palber!).
- FAQ zum Datenschutz ergänzt.
3.1.5
- Feld Datenschutzerklärung akzeptiert im Frontend Formular hinzugefügt. BITTE in den Einstellungen die Übersetzung aktualisieren und in den Einstellungen des D2U Helper Addons den Link für die Datenschutzerklärung und das Impressum festlegen.
- Module: emailobfuscator für E-Mailadressen in Formularfelder deaktiviert.
- Module: erneute Anmeldung wenn Datenschutzerklärung noch nicht zugestimmt wurde möglich, wodurch der alte Datensatz aktualisiert wird.
- Bugfix: automatische Datenübernahme hat nur mit rex_ Tabellen funktioniert.
- Module: Formularklassen auf YForm und Bootstrap 4 angepasst.
3.1.4
- Automatische Datenübernahme bei Installation oder Reinstallation wenn Redaxo 4 Tabellen in Datenbank vorhanden sind.
- Bugfix: Anhängeprüfung konnte nach Neuinstallation des Addons zu fatal error führen.
- Bugfix: Abmeldung bei nicht existierender E-Mailadresse führte zu Fehler.
- Neues Anmeldemodul für das lediglich die E-Mailadresse abgefragt wird.
3.1.3
Es gibt noch mehr Bugfixes...
- Bugfix: Benutzerliste speichert wieder korrekt.
- Bugfix: Empfänger im Archiv seit 3.1.0 werden wieder korrekt dargestellt.
- Bugfix: Einstellungen Optionen werden vor dem Speichern ausgeklappt, damit Pflichtfelder fokussierbar werden.
3.1.2
- Bugfix: Import scheiterte, wenn Adresse mit Leerstelle endete.
- Bugfix: GruppenIDs wurden seit 3.0.8 nicht mehr importiert.
- Bugfix: Newsletter Voreinstellungen beim ersten Versandschritt werden wieder korrekt geladen.
3.1.1
- Englisches Backend hinzugefügt.
- Bugfix: Import war seit Version 3.0.8 kaputt.
- Bugfix: Update war in Version 3.1.0 kaputt.
- Bugfix: Aktivierungslink war ohne E-Mailadresse.
- Bugfix: SEO42 aus Beispieltemplate entfernt.
3.1.0
- MailChimp Anbindung.
- Bugfix: Sonderzeichen in Artikelname werden jetzt korrekt in DB gespeichert.
- Bugfix: Wenn während des Versands die Session abbricht wird beim erneuten Login nun der Versandstatus korrekt initialisiert.
- Bugfix: Löschen einer Sprache löscht nun auch entsprechende Archive und setzt Sprache der Benutzer zurück.
Danke an Alex Platter für das Release!
3.0.9
Bugfix: Sonderzeichen in Artikelname werden jetzt korrekt in DB gespeichert.
Bugfix: Wenn während des Versands die Session abbricht wird beim erneuten Login nun der Versandstatus korrekt initialisiert.
3.0.8
- Italienische Presets hinzugefügt.
- Newsletter Versand Reload JavaScript verbessert.
- SMTP Override.
- BCC Override.
3.0.7
Bugfix: Update von 3.0.x auf 3.0.6 schlug fehl
3.0.3
Bugfix: Einstellungen Fehler wenn Artikel nicht gefunden wird.
Bugfix: Bei Mehrsprachigkeit wird beim Absender auch die Sprachbezeichnung wieder angezeigt.
Danke an alle Nutzer fürs Feedback!