Professionelles E-Mail-Marketing mit OpenEMM
Das Open-Source-System im Zusammenspiel mit TYPO3
OpenEMM heißt die Open-Source-Variante der kommerziellen E-Mail-Marketing-Software „E-Marketing Manager“ (EMM) der Agnitas AG. Das Programm wird unter der Mozilla Public License (MPL) angeboten und steht auf der OpenEMM-Website in deutscher und englischer Sprache zum kostenlosen Download bereit. Die Applikation bietet ein vergleichbares Leistungsspektrum wie die Basisversion des EMM. Wesentlicher Unterschied ist, dass es sich beim OpenEMM um eine Single-Server-Version handelt, das heißt alle Komponenten laufen auf einem einzigen Server, was die Versandkapazität entsprechend beschränkt. Das Versenden von einigen 10.000 E-Mails pro Tag ist mit einer aktuellen Server-Hardware jedoch kein Problem.
Mit OpenEMM lassen sich komplexe E-Mail-Marketing-Kampagnen benutzerfreundlich aufsetzen, durchführen, verwalten und auswerten. Die Stärken des Systems sind die zielgruppenspezifische Ansprache, das Kampagnen-Management und Echtzeit-Tracking-Tools. Außerdem fügt es sich nahtlos in die bestehende IT-Infrastruktur ein und setzt auf bewährte Open-Source-Produkte wie MySQL, Java, Resin und Sendmail auf. Auf SourceForge zählt OpenEMM seit dem Start mit einem Aktivitätsindex von konstant über 99 Prozent zu den beliebtesten Projekten.
OpenEMM läuft auf Betriebssystemen wie beispielsweise Linux, FreeBSD und OpenSolaris. Mit einer speziellen VMware-Version für den VMplayer steht es auch Windows-Anwendern zur Verfügung. Eine RPM-Datei ermöglicht die Installation auf RedHat Linux und kompatiblen Distributionen wie CentOS. Für alle anderen Distributionen wird ein Tarball angeboten. Die Installationsanleitung [1] geht speziell auf RedHat-, Fedora-Core- und Suse- beziehungsweise OpenSuse-Distributionen ein. In den FAQs und Foren zur OpenEMM-Website finden Sie jedoch auch Hinweise für andere Distributionen wie Debian und verschiedene Unix-Derivate wie OpenSolaris. Ein DocuWiki wird in Zukunft der OpenEMM-Community erlauben, interaktiv die Dokumentation zu OpenEMM zu ergänzen und um Beiträge zu erweitern.
Der OpenEMM-Newsletter lässt sich in eine Typo3-Website integrieren, was praktische Vorteile hat, denn das Design der Website muss dadurch nicht umständlich in OpenEMM nachgebildet werden.
Die Anmeldung
Das Anmeldeformular für den Newsletter sieht folgendermaßen aus:
<form name="subform" method="post" action="http://www.openemm.org:8080/form.do" onSubmit="return check();"> <input type="hidden" name="agnCI" value="1"> <input type="hidden" name="agnFN" value="subscribe"> <input type="hidden" name="agnSUBSCRIBE" value="1"> <input type="hidden" name="agnMAILINGLIST" value="1"> <table border="0" cellspacing="1" cellpadding="1"> <tr><td>Gender:</td><td> <input type="radio" name="gender" value="0" checked /> Mr. <input type="radio" name="GENDER" value="1" /> Mrs. </td></tr> <tr><td>First Name:</td><td><input type="text" class="inputtype" name="firstname" maxlength="60" /></td></tr> <tr><td>Last Name: </td><td><input type="text" class="inputtype" name="lastname" maxlength="60" /></td></tr> <tr><td>Company:</td><td><input type="text" class="inputtype" name="company" maxlength="80" /></td></tr> <tr><td>Country:</td><td><input type="text" class="inputtype" name="country" maxlength="80" /></td></tr> <tr><td>E-Mail:</td><td><input type="text" class="inputtype" name="EMAIL" maxlength="80" /></td></tr> <tr><td>E-Mail Type:</td><td><input type="radio" name="mailtype" value="0" /> Text</td></tr> <tr><td> </td><td><input type="radio" name="mailtype" value="1" checked /> HTML</td></tr> <tr><td> </td><td><input type="radio" name="mailtype" value="2" /> Inline HTML*</td></tr> <tr><td> </td><td><input type="submit" class="inputsubmit" name="submit" value="Subscribe now!" /></td></tr> </table> </form>Listing 1
Der Newsletter verwendet zur Anmeldung das Double-Opt-in-Verfahren als rechtlich sichere Lösung (siehe Listing 1). Über die in diesem Fall ausgelagerte JavaScript-Funktion „check“ können die vom Nutzer eingegebenen Feldinhalte auf Plausibilität und Validität überprüft werden. Das Anmeldeformular ruft das Formular „subscribe“ (agnFN=„subscribe“) auf, das
- eine erste Aktion „Subscription Registration Request“ ausführt, die aus dem Aktionsschritt „Subscribe“ und einer aktivierten Checkbox „Use double-opt-in“ besteht,
- per Redirect-Code eine Webseite aufruft, die den Abonnenten zur Bestätigung auffordert (www.openemm.org/subscribe.html) und
- eine abschließende Aktion „Subscription Confirmation Request“ ausführt, die aus dem Schritt „Send mailing“ besteht.
Der dritte Schritt versendet ein aktionsbasiertes Mailing, das den Empfänger über einen Link mit folgender Syntax um die Bestätigung des Anmeldeprozesses bittet:
http://www.openemm.org:8080/form.do?agnCI=1&agnFN=subconfirm&agnUID=##AGNUID##Listing 2
Der Bestätigungslink ruft das Formular „subconfirm“ auf, das
- eine Aktion „Subscription Confirmation“ ausführt, die aus dem ersten Aktionsschritt „Double-Opt-In confirmation“ und dem zweiten Schritt „Send mailing“ besteht (der dem Empfänger die erfolgreiche Anmeldung bestätigt) und
- per Redirect-Code die Anmeldebestätigungsseite aufruft (www.openemm.org/subconfirm.html).
Die Abmeldung
Jede E-Mail sollte am Ende einen Abmeldelink enthalten:
http://www.openemm.org:8080/form.do?agnCI=1&agnFN=unsubscribe&agnUID=##AGNUID##Listing 3
Die Abmeldung vom Newsletter erfolgt durch einen einfachen Klick auf den Abmeldelink, wodurch das Formular „unsubscribe“ aufgerufen wird, das
- die Aktion „Unsubscription Load Profile Data“ ausführt, die aus dem Aktionsschritt „Load customer record“ besteht und
- per Redirect-Code (Listing 4) die Abmeldeseite aufruft und in der URL die Abonnenten-ID übergibt.
<html><head> <title></title> <meta http-equiv="refresh" content="0; URL=http://www.openemm.org/unsubscribe.html?agnUID=$!agnUID"> </head></html>Listing 4
Diese wird vom Webformular der Abmeldeseite ausgelesen:
<script type="text/javascript">
uid = location.search; uid = unescape(uid.substring(8)); </script>
<form name="unsubform" action="http://www.openemm.org:8080/form.do"
method="post" onSubmit="document.getElementById('param').value = uid;">
<input type="hidden" name="agnCI" value="1">
<input type="hidden" name="agnFN" value="unsubconfirm">
<input type="hidden" name="agnUID" id="param" value=test>
<input type="submit" class="inputsubmit" value="Unsubscribe">
</form>
Listing 5
Das Webformular der Abmeldeseite ruft das OpenEMM-Formular „unsubconfirm“ auf, das
- eine erste Aktion „Unsubscription Processing“ ausführt, die aus dem Aktionsschritt „Unsubscribe“ besteht (der die Abmeldung in der Datenbank vornimmt)
- per Redirect-Code die Abmeldebestätigungsseite aufruft (www.openemm.org/unsubconfirm.html) und
- eine abschließende Aktion „Unsubscription Confirmation“ ausführt, die per „Send mailing“ dem Empfänger die erfolgreiche Abmeldung bestätigt.
Die Verlagerung der Webformulare aus OpenEMM über den Redirect-Code in TYPO3 hat den Vorteil, dass in OpenEMM nicht das komplette Design der Website nachgebildet werden muss, sondern dass sich alle Inhalte weiterhin in TYPO3 befinden. Eine Ausnahme bildet der Aufruf der Profilseite, über die der Abonnent sein Empfängerprofil selbst ändern kann. Die Profilseite muss aus technischen Gründen in OpenEMM abgelegt sein.
http://www.openemm.org:8080/form.do?agnCI=1&agnFN=change&agnUID=##AGNUID##Listing 6
Der Profillink in Listing 6 ruft das Formular „change“ auf, das
- eine Aktion „Change Load Profile Data“ ausführt, die aus dem Schritt „Load customer record“ besteht und
- die Profilseite mit dem Profilformular anzeigt (Listing 6 zeigt Beispiele für die Codierung von Feldern im Profilformular).
Das weitere Vorgehen zum Thema Profilseiten erläutert die ausführliche OpenEMM-Dokumentation [2].
E-Mail: <input type="text" class="inputtype" name="email" value="$customerData.email" maxlength="80" /><br> E-Mail Type: <input type="radio" name="mailtype" value="0" #if($customerData.mailtype == "0") checked #end /> Text<br> <input type="radio" name="mailtype" value="1" #if($customerData.mailtype == "1") checked #end /> HTML<br>Listing 7

















