Anzeige
Anzeige
Marketing
Artikel merken

Newsletter-Versand mit TYPO3 Teil 2: Direct Mail

Nachdem im ersten Teil des Workshops in der letzten Ausgabe des T3N Magazin die Grundlagen von „Direct Mail“ behandelt wurden, werden wir in dieser Ausgabe hinter die Fassade des mächtigen Newsletter-Systems schauen.

6 Min. Lesezeit
Anzeige
Anzeige

Die einfache Installation
der notwendigen Erweiterungen für das
Direct-Mail-System liefert Ihnen zwar schon ein funktionierendes
System, um
notwendige Anpassungen kommt man in den meisten Fällen aber nicht
herum. Die Newsletter-Empfänger werden in diesem Workshop aus den
TYPO3-Website-Benutzern abgeleitet. Außerdem werden Sie erfahren, wie
Sie mit TYPO3 mehrere tausend E-Mails gleichzeitig versenden können.

Website-Benutzeranmeldung verwenden

Anzeige
Anzeige

Im letzten Workshop wurde die Erweiterung „Direct Mail Subscription“ zum
Abonnieren des Newsletters verwendet. Diesmal verwenden wir ein Webportal, in dem sich Anwender registrieren
können. In den meisten Fällen geschieht dies bei TYPO3 durch eine
Anmeldung als Frontend- oder Website-Benutzer.

Der
Benutzer wird dabei in einem Datensatz gespeichert, in dem nun das
Newsletter-Abo mitverwaltet
werden soll. Da die
Website-Benutzer neben ihrem Namen und ihrer E-Mail-Adresse weitere
Angaben
machen sollen, wird eine Erweiterung benötigt. Die Extension „Frontend
User Administration“ eignet sich bestens
zur Erfassung und Verwaltung dieser zusätzlichen Daten. Nachdem die
Extension (Extension-Key: „feuser_admin“) über den Extension-Manager
installiert wurde, muss ein Seiteninhaltselement vom Typ „Plugin“ auf
einer Seite eingefügt und die Erweiterung „Front End User Admin“
selektiert werden. Beim Aufruf der Seite
erscheint dann bereits ein Anmeldeformular mit zahlreichen
Eingabefeldern.

Anzeige
Anzeige

Das Anmeldeformular erweitern

Dieses Anmeldeformular werden wir nun erweitern, sodass bei der
Registrierung auf der Website der Newsletter eingestellt werden kann.
Das Template mit dem Anmeldeformular findet sich bei lokaler
Installation der Erweiterung unter
„typo3conf/ext/feuser_admin/pi/fe_admin_fe_users.tmpl“, wenn die
Erweiterung global installiert wurde unter
„/typo3/ext/feuser_admin/pi/fe_admin_fe_users.tmpl“.

Anzeige
Anzeige

Mit einem WYSIWYG-Editor lässt sich das Formular relativ schnell
verändern und an das Website-Layout anpassen. Sollen allerdings neue
Felder in das Formular integriert werden, sind einige zusätzliche
Punkte zu beachten.

Subparts in der HTML-Vorlage

Das Template ist in mehrere Subparts unterteilt. Der erste Subpart
„TEMPLATE_CREATE“ liefert das Formular aus, mit dem der Benutzer bei
einer Neuanmeldung seine Daten übergibt. Das Formular in dem Subpart
kann nun um die Felder für das Newsletter-Abo erweitert werden. Die
Newsletter-Informationen werden in den Feldern
„module_sys_dmail_category“ und „module_sys_dmail_html“ abgelegt. Diese
Felder werden bei der Installation der Direct-Mail-Erweiterung sowohl
in die Tabelle „tt_address“ als auch in die Tabelle „fe_users“
hinzugefügt. Im Feld „module_sys_dmail_category“ wird die
Newsletter-Kategorie
eingetragen. Null bedeutet hier, dass kein Newsletter aboniert ist. Das
Feld „module_sys_dmail_html“ kann verwendet werden, wenn zwischen Text-
und HTML-Newslettern unterschieden werden soll.

Anzeige
Anzeige

In das Formular haben wir lediglich zwei Umschalter integriert. Mit
dem ersten kann der Newsletter aktiviert und deaktiviert werden.

HTML
<input type="radio" name="FE[fe_users][module_sys_dmail_category]" value="0">
<input name="FE[fe_users][module_sys_dmail_category]" type="radio" value="1">

Listing 1

Über den zweiten Umschalter kann zwischen HTML- und Text-Newsletter selektiert werden.

HTML
<input type="radio" name="FE[fe_users][module_sys_dmail_html]" value="0">
<input name="FE[fe_users][module_sys_dmail_html]" type="radio" value="1">

Listing 2

Der
Subpart „TEMPLATE_CREATE_PREVIEW“ dient zur Generierung einer Vorschau.
Am
Ende des Vorschau-Formulars, noch vor den beiden Schaltflächen, finden
sich einige Formularelemente vom Typ „hidden“. Hier müssen die
neuen Elemente aus dem Eingabeformular eingefügt werden, da sonst die
Angaben zum Newsletter-Abo nicht von der Vorschau weitergereicht werden.

Anzeige
Anzeige
HTML
<input type="hidden" name="FE[fe_users][module_sys_dmail_html]">
<input type="hidden" name="FE[fe_users][module_sys_dmail_category]">

Listing 3

Da über diese Erweiterung auch die Benutzerdaten bearbeitet werden
können, gibt es zwei weitere Subparts. Der Subpart „TEMPLATE_EDIT“ ist
ähnlich wie „TEMPLATE_CREATE“ aufgebaut. Auch hier gibt es mit
„TEMPLATE_EDIT_PREVIEW“
einen entsprechenden Subpart, der für die Vorschau bei der Bearbeitung
von Benutzerdaten zuständig ist. Die im letzten Absatz beschriebenen
Modifikationen sollten Sie auch hier durch führen, da
Angaben sonst beim Bearbeiten verloren gehen könnten. Das modifizierte
Template kann anschließend mit dem Constant-Editor übertragen und in
die Erweiterung eingebunden werden.

TypoScript anpassen

Damit die von der Vorschau übergebenen Daten von der
Erweiterung verarbeitet werden können, müssen der Erweiterung nun noch
die neuen Felder bekannt gemacht werden. Dies geschieht über die
Eigenschaft „plugin.feadmin.fe_users.create.fields“. Standardmäßig sind
hier folgende Felder angegeben: „username“, „password“,
„name“, „email“, „usergroup“, „address“, „telephone“, „fax“, „title“,
„company“, „zip“,
„city“, „country“, „www“. Dieser Eigenschaft müssen jetzt die beiden
Felder „module_sys_dmail_category“ und „module_sys_dmail_html“
hinzugefügt werden.
Am einfachsten lässt sich das mit dem TypoScript-Object-Browser
bewerkstelligen.

Die Änderungen im TypoScript-Object-Browser können im Template-Modul in
der Ansicht „Info/Modify“ überprüft werden. Im Setup-Feld steht dann
folgendes TypoScript:

Anzeige
Anzeige
TYPOSCRIPT
plugin.feadmin.fe_users.create.fields =
username,password,name,email,usergroup,address,telephone,fax,title,company,zip,city,country,www,
module_sys_dmail_category, module_sys_dmail_html

Listing 4

Jetzt kann die Erweiterung die im Template angelegten Zusatzfelder
verarbeiten und die im Anmeldeformular zum Newsletter
gemachten Angaben in die entsprechenden Datenbankfelder schreiben. Die Felder
„module_sys_dmail_category“ und „module_sys_dmail_html“ werden jedoch nicht
angezeigt. Ob die Daten aus dem Anmeldeformular auch in den
Datenbankfeldern ankommen, sollte also mit phpMyAdmin überprüft werden.

Den Newsletter-Versand automatisieren

Die Newsletter werden im Mailer-Engine-Status über den Link
"Invoke-Mailer-Engine" verschickt. TYPO3 schickt beim Klick auf den
Text den
Newsletter an die ersten fünfzig Empfänger. Wenn mehrere Empfänger
adressiert sind, muss der Link entsprechend mehrfach betätigt werden.
Dies kann schnell lästig werden, besonders wenn tausende Empfänger den
Newsletter erhalten sollen. Für diesen Fall sollte der Versand
automatisiert werden. Dabei ist das Skript „dmailerd.phpcron“ im
Unterverzeichnis „mod“ der
Erweiterung behilflich. In der ersten Zeile dieses Shell-Skripts muss
der Pfad zum PHP-Binary überprüft werden. Die erste Zeile des Skripts
ist wichtig, da sie festlegt mit welchem Interpreter die Datei
„dmailerd.phpcron“ ausgeführt werden soll.

Über einen Cronjob kann der Aufruf dieses Skripts auf Linux-Systemen
automatisiert werden. Mit dem Befehl „crontab –e“ wird die entsprechende
Datei geöffnet, in die der Aufruf des Direct-Mail-Skripts eingetragen
wird. Hier muss der absolute Pfad zum Skript angegeben werden.
Mit dem folgenden Eintrag wird das Skript einmal pro Minute vom System
aufgerufen.

Anzeige
Anzeige
CRON
*/1 * * * * /.../typo3/ext/direct_mail/mod/dmailerd.phpcron > /dev/null

Listing 5

Sollte es zu Problemen beim Aufruf des Shell-Skripts kommen, kann das
Shell-Skript auch in ein PHP-Skript gewandelt werden. Dazu legen wir
einfach eine Kopie des Originals an.

SHELL
cp dmailerd.phpcron dmailerd.php

Listing 6

Im PHP-Skript entfernen Sie jetzt die erste Zeile mit der Angabe zum
PHP-Binary. Jetzt kann dieses PHP-Skript mit jedem beliebigen
Webbrowser aufgerufen werden. Auf Linux-Systemen eignet sich dazu der
Text-Browser „Lynx“, es kann aber auch ein beliebiger anderer verwendet
werden. Beim Aufruf des PHP-Skripts muss dann allerdings eine URL statt des
absoluten Verzeichnispfads angegeben werden, über die das Skript
aufgerufen wird. Hier kann eine Domain, eine IP-Adresse oder auch der
Localhost verwendet werden. Der Eintrag in der „crontab“ für den Aufruf
des PHP-Skripts würde dann wie folgt aussehen.

CRON
*/1 * * * * lynx --dump http://localhost/TYPO3Projekt/typo3/ext/direct_mail/mod/dmailerd.php > /dev/null

Listing 7

Die Vorgabe „$dir = dirname($HTTP_ENV_VARS["_"]);“ führt in vielen
Umgebungen zu Problemen. Meist genügt es hier den absoluten Pfad
zum Verzeichnis
anzugeben, in dem sich das dmailerd-Skript befindet. Auch die Pfadangaben für „PATH_typo3“ und „PATH_site“ können
manuell gesetzt werden, um Fehler zu vermeiden.

Anzeige
Anzeige
PHP
define("PATH_typo3", "/var/www/TYPO3Projekt/typo3/");
define("PATH_site", "/var/www/TYPO3Projekt/");

Listing 8

Automatisierug unter Windows

Auf Windows-Servern lassen sich solche Aufrufe durch Tasks
automatisieren. Dazu muss aber zunächst eine Batchdatei angelegt
werden, die den eigentlichen Aufruf beinhaltet. Diese kann mit einem
beliebigen Texteditor angelegt werden und muss lediglich auf „.bat“
enden. In dieser Datei tragen Sie die absoluten Pfad zur Datei „php.exe“ und zum dmailerd-PHP-Skript ein.

BATCH
D:\apache\php\php.exe 
D:\apache\htdocs\TYPO3Projekt\typo3\ext\direct_mail\mod\dmailerd.php

Listing 9

Anschließend kann der Task in der Winodws-Systemsteuerung unter „Geplante Tasks“ angelegt
werden. Als ausführendes Programm wählen Sie hier die eben erzeugte
Batchdatei aus. Auf der Registerkarte „Zeitplan“ kann die tägliche
Ausführung des Tasks festgelegt werden.

In den erweiterten Optionen lassen sich zusätzliche
Wiederholungsintervalle einstellen, sodass das Skript auch unter
Windows jede Minute einmal ausgeführt werden kann.

Anzeige
Anzeige

Fazit

Direct Mail ist ein extrem leistungsfähiges System, das sich auch
für den Versand größerer E-Mail-Mengen eignet. Weil beliebige
Datenbanktabellen für die Generierung der Empfängerlisten herangezogen
werden können, arbeitet Direct Mail mit allen Beteiligten ohne Scheu
perfekt zusammen. So lässt sich fast jede beliebige Registrierungsmethode
einsetzen, über die Website-Besucher sich für den Empfang eines
Newsletters anmelden können.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige