Abonnentenverwaltung
Aus Melin DokuWiki
Anlegen von einzelnen Abonnenten Anlegen von Empfängerlisten
Melin verfügt über eine integrierte Abonnentendatenbank. Der Zugriff auf die Abonnentendatenbank erfolgt über eine Reihe von Workflow Plug-Ins. Die unter dem Menüpunkt "Subscriber" im Workflow-Grid zusammengefasst sind.
Zur Kontrolle existiert ein eigener Hauptmenüpunkt "Abonnenten" mit dem die Abonnentendatenbank durchsucht werden kann.
Im folgenden werden zuerst die Operationen beschrieben um die Abonnentendatenbank zu modifizieren, anschließend werden die Funktionen auf der GUI-Oberfläche erläutert.
Abonnent hinzufügen (über die Melin-Benutzeroberfläche)
Der einfachste Weg einen neuen Abonnenten per XML in die Melin Userdatenbank zu importieren ist folgender Workflow:
Abonnent hinzufügen (über Webbrowser mit Melin)
Der einfachste Weg einen neuen Abonnenten per XML in die Melin Userdatenbank zu importieren ist folgender Workflow:
Abonnent hinzufügen (über eine bestehende Webseite)
Der einfachste Weg einen neuen Abonnenten per XML in die Melin Userdatenbank zu importieren ist folgender Workflow:
Abonnent hinzufügen (aus XML-Datei)
Der einfachste Weg einen neuen Abonnenten per XML in die Melin Userdatenbank zu importieren ist folgender Workflow:
Die Import-Datei muss mindestens ein Feld "EMAIL" mit einer gültigen Emailadresse enthalten. Alle weiteren Felder sind frei definiertbar und werden zusätzlich mit in die Abonnentendatenbank übernommen.
Import.xml <EMAIL>john.doe@sample.com</EMAIL> <ANREDE>Herr</ANREDE> <NAME>Doe</NAME> <VORNAME>John</VORNAME>
Abonnent hinzufügen (aus VCF-Datei)
Ein gängiger Standard zum Austausch von Personendaten ist der VCF-Standard. Viele Programme (z.B. Outlook, OutlookExpress, OSX Adressbuch) sind in der Lage die gespeicherten Daten als VCF-Dateien zu exportieren.
Ein Beispiel. Die Visitenkarte
wird zu folgender VCF-Datei:
BEGIN:VCARD
VERSION:3.0 N:Seippel;Ralf-P.;;Dr.; FN:Seippel Ralf-P. ORG:Seippel Galerie; EMAIL;type=HOME;type=pref:seippel@galerie-seippel.de TEL;type=WORK;type=pref:49-221-25 58 34 TEL;type=FAX:49-221-25 22 65 ADR;type=WORK;type=pref:;;Zeughausstr. 26;Kln;;D-50667;Deutschland END:VCARD
Da pro Datensatz eine VCF-Datei erzeugt iwrd können bei einem Komplett-Export von Datensätzen schnell tausende solcher Dateien enstehen.
Der WebDAV-Ordner
Ein Einzelupload solcher VCF-Dateien ist viel zu umständlich. Melin 2.0 nutzt zu diesem Zweck die WebDAV-Technologie. Ein Verzeichnis auf dem Melin-Server kann so freigegeben werden daß dieser unter Windows (Linux, macOS) als Laufwerk zur Verfügung steht. Anschließend können die Dateien per Drag and Drop in dieses Verzeichnis verschoben werden.
Das "Mounten" eines WebDAV-Ordners ist Betriebssystemabhägig.
Unter Windows werden WebDAV-Ordner als "Web Folders" bezeichnet, in der Hilfe finden sich detaillerte Informationen.
Unter MacOS X ist WebDAV im Betriebsystem verankert und kann über den Menüpunkt "Gehe zu: mit Server Verbinden" aufgerufen werden.
Im ersten schritt wird man aufgeforder die Adresse einzugeben. Die Adresse ist immer die URL der Melin-installation, gefolgt von "/webdav", zum Beispiel: "http://www.melin.de:8200/webdav"
Unter umständen erhalten Sie eine Sicherheitswarnung. Diese kann mit "Ja" bezw. "Fortfahren" beantwortet werden.
Anschließend werden sie nach einem Login und Passwort gefragt.
Es können sich alle Melin-Anwender anmelden die in ihrem Profil die Berechtigung für WebDAV erhalten haben. Bei einer Neuinstallation ist aus Sicherheitsgründen kein User freigegeben, rufen Sie also bei einem ersten Einsatz über die Oberfläche einen User auf und aktivieren Sie die Checkbox "WebDAV". Anschließend kann ggf. ein Neustart des Tomcat Applicaton Servers erforderlich sein.
Das VCF-Plug-In ist bereits so vorkonfiguriert daß es in zyklischen Abständen den WebDAV-Ordner kontrolliert. Werden dort neue Dateien vorgefunden so werden diese importiert und die Dateien gelöscht. Anschließend können die Datensätze direkt mit dem AddSubscriber-Plug-In in die Abonnentendatenbank hinzugefügt werden.
Abonnent löschen
Um einen Abonnenten zu löschen ruft man das "DeleteSubscriber"-Plug-In mit einem Workflow Plug-In auf in dem das Feld EMAIL mit der zu löschenden Emailadresse belegt ist.. Alle weiteren Daten werden ignoriert..
Versenden einer Mail an alle Abonnenten
Um eine Mail an alle existierenden Abonnenten zu versenden setzt man das "getEmails"-Plug-in ein. Dieses füllt die LISTE des Datenobjekts mit allen vorhandenen Emailadressen. Anschliessend kann die Liste mit Hilfe der Filter derart reduziert werden dass nur noch die Empfänger darin verbleiben die das gewüschte Mailing erhalten sollen.
Der Basis-Workflow zum Versenden eines Newsletters an eine ausgewählte Zahl von Abonneten ist also:
• Einlesen von Inhalten • Einlesen aller Abonnenten • Filtern der Empfängerliste (Abonnentenliste) • Setzen des Versandtemplates • Versenden
Die Inhalte werden entweder per XML aus einem Drittsystem zugeliefert und über den XML-Reader eingelesen oder mit dem integrierten NanoCMS erzeugt.
Wenn das Mailing nur an eine Teilmenge der Abonneten verschickt werden soll, müssen Filter ein gesetzt werden. Im Lieferunmfang von Melin 2 befinden sich zwei Filter:
• Normaler Filter (Filterung auf Basis von Kriterien im Workflow) • Dynamischer Filter (Filterung mit wechselbaren Kriterien)
Filter Plug-In
Der Filter dient zum entfernen von unerwünschten Einträgen aus dem DatenObjekt. Drei Fälle sind zu unterscheiden, je nachdem in welchem Kontext der Filter angewendet wird.
HASH Beispiel: key = email; value = imperia.net
Der Filter prüft, ob im Hashfeld „email“ der begriff „imperia.net“ vorkommt (Absenderprüfung), wenn ja, dann kann das Objekt passieren, ansonsten nicht.
LISTE Beispiel: key = #LISTE:EMAIL; value = imperia.net
Wenn der Key gleich „#LISTE“ oder „#LIST“ ist, dann werden alle Elemente, die nicht den Value enthalten aus der Liste gelöscht. Das Gegenteil kann erreicht werden wenn nach der Raute ein ! gesetzt wird.
CODE Veränderungen am Code werden in der aktuellen Implementierung nicht vorgenommen. "#CODE" und "#!CODE" werden ignoriert
Es ist möglich aufgrund weiterer Felder zu filtern, um zum Beispiel allen Interessenten zum Thema "Sport" eine Mail zu schicken, siehe Beispiel 2.3.
Der Newsletter soll Emails nur an Abonnenten mit Sport als Hobby versenden.
Der User wird z.B. per XML-Import angemeldet und seine Daten sehen wie folgt aus:
<USER ID="ulrich@runmedia.com">
<ID>39</ID> <EMAIL>ulrich@runmedia.com</EMAIL>
<INTEREST>prodinfo</INTEREST> <HOBBY>Sport</HOBBY>
…
</USER>
Im Grid wird folgende Logik implementiert
Der Filter geht jetzt alle Emailadressen der Liste durch und entfernt die Einträge, die im Userprofil nicht den Eintrag "HOBBY" mit dem Wer "SPORT" haben.
Dynamische Filter (FastFilter)
Das FastFilter-Plug-In wird über eine eigene Verwaltungsoberfläche im Melin Web-Interface konfiguriert. Im Menüpunkt "Abonnenten und Filter" können individuelle Filter erstellt werden die anschliessend im Plug-In Konfigurationsfenster ausgewählt werden können.
Im rechten Teil des Fensters sind die existierenden Filter aufgelistet und können dort nachträglich bearbeitet bezw. gelöscht werden.
Im linken Teil sind die Einstellungen des aktuell gewählten Filters gelistet. In der oberen Zeile steht der Name des Filters und die Zahl der Abonnenten aus dem gesamten Abonnentenbestand die diese Kriterien erfüllen.
Darunter sind die Kriterien zeilenweise aufgelistet. Neue Kriterien werden mit einem Klick auf den Plus-Button hinzugefügt, der Minus-Button löscht die entsprechende Zeile.
Jedes Filterkriterium besteht aus dem Hash-Feld das geprüft werden soll, einem Vergleichsparameter und dem Sollwert.
Mit "NEU" am Fuß der Seite wird ein neuer Filter angelegt, die aktuellen Filtereinstellungen werden mit "SPEICHERN" gesichert.
Anzeigen
Der Button "ANZEIGEN" listet alle Abonnenten auf die den gewählten Kriterien entsprechen. Die Anzeigen-Funktion ist aus datenschutzrechtlichen Gründen nicht in allen Installationen verfügbar.
Zu jedem Datensatz können darüber hinaus noch weitere Detailinformationen abgerufen und ggf. aktualisiert werden.
Verwendung der Filter
Die gesicherten Filter sind anschliessend im Konfigurationsfenster des FastFilters im Grid verfügbar und können dort ausgewählt werden.
Hyperlinks und Formuare
Eine der Hauptquellen zur Generierung von Abonnenten-Adressen ist die eigene Webiste. Es ist möglich den Abonnenten die komplette Verwaltung ihres Accounts über die Website zu ermöglichen.
Einige Beispiele:
Einfache Anmeldung auf der Hauptseite
Detailliertere Anmeldung auf einer Unterseite
Abmeldung
MELIN bietet eine Reihe von leistungsfähigen Optionen zur automatischen An-/Ab- und Ummeldung von Abonnenten, per Web-Interface, XML-Import und Mail die im folgenden erläutert werden.
Dieselbe Technik wird genutzt um Hyperlinks in Mailings zu verwalten, da auch hier Formulardaten -wenn auch codiert in einem Email-Link - ausgetauscht werden.
18. Vorbereitungen
Im Lieferumfang von Melin 2.0 befindet sich ein Script-Paket um schnell und einfach An-, Ab- und Ummeldeformulare zu implementieren.
Die Scripte befinden sich im Verzeichnis DOCUMENT-ROOT/add-ons der Melin-Installation. Daneben finden sich dort einige weitere hilfreiche Beispieldateien:
melin_usv.jsp JSP-Implementierung des Formular-Scripts
melinconfig.xml Eine reduzierte Konfigurationsdatei. Diese Datei muss sich immer im selben Verzeichnis wie das verwendete Formular-Script befinden. In dieser Datei wird festgelegt in welchen Ordner die erzeugten XML-Dateien abgelegt werden (Pfade zur Melin-Installation)
done.html Beispiel-Seite für eine Bestätigungs-Seite die nach einer Anmeldung für einen Newsletter auf der Website anngezeigt wird.
anmelden.html Beispiel-Seite für ein einfaches Anmeldeformular.
optin.html Beispiel-Seite für eine Opt-In-Mail die versand wird nachdem ein User sich angemeldet hat.
Um auf Ihrer Website ein Newsletter-Anmeldeformular einzubauen kopieren sie Formular-Script auf ihren Webserver, kopieren die melinconfig.xml-Datei in denselben Ordner, passen den Inhalt der Datei falls nötig an und ergänzen eine ihrer Webseiten gemäß der folgenden Anweisungen.
Falls Sie auf ihrem Webserver keine JSP-Dateien nutzen können so sind auch PHP- und Perl-Implementierungen verfügbar. Bitte prüfen Sie hierzu die Download-Area auf http://www.melin.de/downloads
Als letze Variante ist es mit wenig Aufwand möglich die beschriebenen Steuerdateien mit einer Scriptsprache Ihrer Wahl zu generieren.
19. Anmelden per Web-Interface
Um eine Anmeldung an einem oder mehreren Newslettern zu ermöglichen muss ein Web-Anmeldeformular entwickelt werden um die Abonnentendaten einzugeben. Die eingegebenen Daten werden an ein Verarbeitungs-Skript gesendet. Das Skript erzeugt dann eine Datei in der Form "*.create", die die Formulardaten in XML-Format enthält:
Das Anmeldeformular kann mit beliebigen Eingabefeldern bestückt werden, es muss mindestens ein Feld "EMAIL" enthalten.
Als Attribut "action" des Formulars soll das Skript melin_usv mit dem Parameter STORE aufgerufen werden. Die Seite, die anschließend ausgegeben wird, wird über einen versteckten Parameter „M_NEXTPAGE“ definiert. Ein einfacher Beispielcode kann folgendermaßen aussehen
<FORM method=post action="/melin/examples/melin_usv.jsp?STORE"> Beginn des Formulars, aufruf des Melin-Scripts mit dem STORE Parameter
<INPUT type=hidden name="M_RESULTPAGE" value="done.html"> Legt fest dass die Seite SITE-DIR/usv/ers/done.html ausgegeben wird nachdem die XML-Datei erzeugt wurde.
<INPUT type=hidden name="M_SUFFIX" value="create"> Die erzeugten XML-Dateien erhalten die Endung ".cerate" damit die Datei vom richtigen XML-Reader importiert wird.
<input name="EMAIL" size=25 VALUE="ihr@name-hier.de"> Fragt die Emailadresse vom User ab <input name="NAME" size=25 VALUE="John Doe"> Erfragt den vollständigen Namen <input type=submit name="ok" value=" OK ">
Zeigt einen OK-Button an </FORM> Schliesst das Formular in der HTML-Seite
Die auf diese Weise erzeugten XML-Daten liegen immer im Verzeichnis SITE-DIR/usv/res und können von dort mit dem XML-Reader abgeholt werden.
Die erzeugte XML-Datei entspricht dem Standard-Importformat des XML-Readers:
Beispiel: 999873451661.create
<M_RESULTPAGE>done.html</M_RESULTPAGE> <EMAIL>mahfoud.merad@imperia.net</EMAIL> <NAME>Mahfoud</NAME>
Im Grid wird dann die Logik implementiert mit der die Daten in die Userdatenbank importiert werden:
Grid-Implementierungsbeispiel
Das XMLread-Plug-In fungiert hier als Datenquelle, um Inhalte (die Dateien *.create) in die Gridstruktur einzuspielen. Das AddUser-PlugIn legt einen neuen Abonnent in der internen Abonnentendatenbank an.
20. An/Anmelden per Hyperlink
Der User hat die Möglichkeit sich über einen Hyperlink anzumelden. Der Aufruf hat die folgende Syntax:
http://[SERVER-URL]/cgi-bin/melin_usv.jsp?SUBSCRIBE=[EMAILADRESSE]
Beispiel: http://www.melin.de/cgi-bin/melin_usv.jsp?SUBSCRIBE=mm@melin.de
Abmelden von Abonnenten
Der User hat analog die Möglichkeit sich über einen Hyperlink von der Abonnentenliste zu streichen. Der Aufruf hat dabei folgende Syntax:
http://[SERVER-URL]/cgi-bin/melin_usv.jsp?UNSUBSCRIBE=[EMAILADRESSE]
Beispiel: http://www.melin.de/cgi-bin/melin_usv.jsp?UNSUBSCRIBE=mm@melin.de
Ändern von Profildaten
Mit Hilfe der Hyperlinks ist es auch möglich Felder im Profil des Users zu setzen oder neu hinzuzufügen:
http://[SERVER-URL]/cgi-bin/melin_usv.jsp?UPDATE=[EMAILADRESSE]&KEY=value
Beispiel: http://www.melin.de/cgi-bin/melin_usv.jsp?UPDATE=mm@melin.de&OPTIN=TRUE
Falls das genannte Feld noch nicht im Profil des Users existiert wird es angelegt. Existierende Felder werden mit dem definierten Wert überschrieben.
Mehrere Felder werden durch &-Zeichen getrennt:
Beispiel: http://melin.de/cgi-bin/melin_usv.jsp?UPDATE=mm@melin.de&OPTIN=TRUE&STEP=1
Ergebnisseite
Jeder Klick auf einen Link in einer Mail öffnet ein Browserfenster beim User. Anschließend wird die XML-Datei erzeugt und dem User eine Seite in seinem Browser angezeigt.
Als Standard wird die Seite
SITE-DIR/usv/doc/hyperlink_[AKTION].html
ausgegeben. AKTION kann die Werte "SUBSRCIBE", "UNSUBSCRIBE" bezw. "UPDATE" haben.
Alternativ kann die Aufrufzeile um
&M_NEXTPAGE=[Seitenname]
ergänzt werden. Die angegebene Seite wird in SITE-DIR/usv/doc gesucht.
Beispiel 1 - ohne Parameter:
http://melin.de/cgi-bin/melin_usv.jsp?UNSUBSCRIBE=mm@melin.de
Seite die ausgegeben wird:
SITE-DIR/usv/doc/hyperlink_unsubscribe.html
Beispiel 2 - mit Parameter:
http://melin.de/cgi-bin/melin_usv.jsp?SUBSCRIBE=mm@melin.de&M_NEXTPAGE=foo.txt
Seite die ausgegeben wird:
SITE-DIR/usv/doc/foo.txt
21.
22. Double Opt-In
Das Double-Opt-In ist eine häufig genutzte Möglichkeit um sicherzustellen dass ein Abonnent sich wirklich selbst auf der Website angemeldet hat.
Das Prinzip Double-Opt-In
Nachdem sich ein Abonnent über ein Formular auf der Website registriert hat wird sein Profil in die Userdatenbank hinzugefügt und mit einem zusätzlichen Feld "OPTIN" mit dem Wert "FALSE" versehehen (statt "OPTIN" kann das Feld auch beliebig anders heissen).
Anschliessend wird dem Abonnent eine Email zugesand mit einem Link. Durch einen Klick auf diesen Link wird das Feld "OPTIN" im Profil des Users auf "TRUE" gesetzt.
Durch eine Kombination der obigen Möglichkeiten wird die Doule-Opt-In Anmeldung realisiert. Die erste XML-Datei wird erzeugt wenn der Abonnnet das Formular auf der Website ausfüllt. Anschliessend wird das Datenpaket dupliziert, das Feld OPTIN auf den Wert FALSE gesetzt und der Abonnent angelegt. Parallel wird ein Versand-Template für die Bestätigungs-Email festleget und an den Abonnent versand. Der Bestätigungs-Link befindet sich im Template das für den Versand verwendet wird
Die zweite ("Confirm Link") wird generiert wenn der User auf den Link in der ihm zugesandten Mail klickt.
23. Tracking
Ein weiterer Parameter im Script melin_usv erlaubt eine Protokollierung wann eine Mail geöffnet wurde (nur HTML-Mails).
Im Regelbetrieb werden alle Grafiken die zum einer Email gehören in dieser Mail mitgeschickt (Inline-Images) und stehen dem Empfänger auch beim Offline-Lesen dieser Mail zur Verfügung.
Das Script melin_usv verfügt über einen Parameter ("PICTURELOGGER", "PL") um ein 1x1 Pixel großes transparentes GIF auszuliefern wenn der User die HTML-Mail betrachtet.
Bei jedem Aufruf wird eine XML-Datei im Verzeichnis SITE-DIR/usv/plo/ erzeugt (z.B. 12345.xml). Mit dem Statistikmodul könnnen auf dieser Weise Statistiken über die Öffnungsrate der Mailings generiert werden.
Beispiel (Ausgabe eines transparenten GIFs):
http://www.melin.de/cgi-bin/melin_usv.jsp?PL=1
In dieser XML-Datei stehen eine Reihen von Zusatzparametern die die weitere Ausführung erleichtern, z.B. die aktuelle Zeit, die IP-Nummer und die Browserkennung des Rechners der das Bild angefordert hat.
Durch geeignete Zusatzparameter kann das Bild genau einem speziellen Mailing zugeordnet werden so dass sich detaillierte Statistiken anfertigen lassen. Mehrere Parameter werden durch "&"-Zeichen getrennt.
Beispiel:
http://www.melin.de/cgi-bin/melin_usv.jsp?PL=1&MAILING_ID=5&RCV=7711
Diese Parameter werden ohne Änderung in die XML-Datei übernommen.
Darüber hinaus werden noch drei weitere Parameter automatisch hinzugefügt:
__REMOTE_BROWSER Browserkennung des Remote-Systems __REMOTE_HOST Domain-Name des Remote-Systems (sofern diese aufgelöst werden kann, ansonsten IP-Nummer) __REMOTE_ADDR IP-Nummer des Remote-Systems
Beispiel: SITE-DIR/usv/log/12345.xml
<__REMOTE_BROWSER>Mozilla/5.0 (Mac OSX; de) Safari/85.6</__REMOTE_BROWSER> <__REMOTE_HOST>sebs.local</__REMOTE_HOST> <__REMOTE_ADDR>127.0.0.1</__REMOTE_ADDR> <PICTURELOGGER>1</PICTURELOGGER> <MAILING_ID>5</MAILING_ID> <RCV>7711</RCV>
Hinweis: Weitere Informationen wie dieser Link individuell pro User beim Versand erzeugt werden kann findet sich in der Beschreibung zum EmailSender-Plug-In bezw. TemplateDiskWriter-Plug-In.
24. 25. Fehlerbehandlung
Wenn das Skript melin_usv ohne oder mit ungültigen Parametern aufgerufen wird, wird eine Standard-Fehlerseite ausgegeben:
SITE-DIR/usv/doc/error.html
26. ProtokollIerung
Alle Aktivitäten von melin_usv werden mitprotokolliert um jederzeit belegen zu können zu welchem Zeitpunkt sich zum Beispiel eine bestimmte Emailadresse angemeldet hat.
SITE-DIR/usv/log/protocol_YEAR_MON.log
YEAR Das aktuelle Jahr (vierstellig) MON Der aktuelle Monat (zweistellig)
Beispiel: SITE-DIR/usv/log/protocol_2003_12.log
Authorization scheme: 127.0.0.1
Servlet path: /add-ons/melin_usv.jsp
Server port: 8200
Content length: -1
Path translated: null
Remote host: 127.0.0.1
Request URI: /add-ons/melin_usv.jsp
Path info: null
Request Protocol: HTTP/1.1
JSP Request Method: GET
Date: 2003.12.27 00:45:37
Remote user: null
Content type: null
Remote address: 127.0.0.1
Browser: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.6
Server name: 127.0.0.1
Query string: null
27. Hyperlinks
Jeder Newsletter sollte eine Möglichkeit beinhalten mit der der Emfpänger sich einfach abmelden kann. Der übliche Weg ist die Integration eines "Abmelden"-Hyperlinks in die Email.
Grundsätzlich kann zwischen zwei Varianten unterschieden werden:
Direkte Abmeldung Der Klick auf den Link führt zur direkten Abmeldung. Als Ergebnis wird eine Bestätigungsseite angezeigt.
Indirekte Abmeldung Der Link führt auf eine Zwischenseite auf der der Abonnent sich abmelden oder Änderungen an seinem Profil vornehmen kann.
Beiden Varianten ist gemeinsam daß am Ende eine XML-Datei erzeugt wird die vom Grid verarbeitet werden kann. Für die Weiterverarbeitung reicht ein einfaches Grid aus:
Direkte Abmeldung
Der einfachste Weg eine Abmeldung per Hyperlink zu realisieren. Um den Link zu konstruieren werden mindestens drei Parameter benötgit:
• Die Emailadresse des Abonnenten der sich abmelden will • Eine Ausgabeseite die den Abonnent darüber informiert daß die Abmeldung erfolgreich war • Eine Nameskonvention bezw. Dateiendung für die erzeugten XML-Dateien (der XMLReader erkennt anhand der Dateiendung daß Datei in gerade diesen Workflow geschoben werden soll).
Damit läßt sich beispielsweise folgender Abmelde-Link generieren:
http://127.0.0.1/addons/melin_usv.jsp?store=unsub&M_S=rem&email=johndoe@foo.com
Dieser Link setzt voraus daß die Datei ./msite/usv/res/storeunsub.html existiert die zur Bestätigung ausgegeben wird (wenn nicht anders angegeben wird zur Ausgabe immer eine Datei in ./msite/usv/res gesucht deren Namen sich aus "store" + Parameter bei store (in dem Fall "unsub") + ".html" zusammensetzt. In diesem Fall ergibt dies ./msite/usv/res/storeunsub.html
Vor der Ausgabe wird noch eine XML-Datei im Verzeichnis ./msite/usv/web erzeugt mit der Endung ".rem" (das Suffix der Datei wird durch den Parameter M_S oder die Langform M_SUFFIX festgelegt). Die Datei hat bei obigem Beispiel den folgenden Inhalt:
1077365510258_93.rem <M_SUFFIX>remove</M_SUFFIX> <EMAIL>johndoe@foo.com</EMAIL> <M_RESULTPAGE>storeunsub.html</M_RESULTPAGE>
In einem Mailing muß die Emailadresse natürlich dynamisch eingesetzt werden. Im Template das als Basis für das Mailing dient setzt man statt der Emailadresse den Platzhalter $UD[EMAIL]. Der Link wird also zu
http://127.0.0.1/addons/melin_usv.jsp?store=unsub&M_S=rem&$UD[EMAIL]
Von einigen Anwendern wurde bemängelt daß diese Art der Linkgenerierung es ermöglicht andere Abonnenten abzumelden wenn deren Emailadresse bekannt ist. Wenn dies verhindert werden soll gibt es verschiedene Methoden. Eine Lösung ist im Hyperlink weitere Profildaten einzubauen (z.B. die Zeit in Sekunden seit 1970 an der sich der Abonnent registriert hat). Vor dem Löschen des Abonnenten überprüft man ob alle Daten mit den Profildaten übereinstimmen.
Indirekte Abmeldung
Die indirekte Abmeldung erfordert eine tiefergehende Integration in die Website. Das folgende Beispiel nutzt eine weitere Funktion von melin_usv: beim Aufruf des Scripts mit dem Parameter "EMAIL" wird automatisch das Profil des Abonnenten geladen und kann in der Seite dargestellt werden (mit derselben Notation wie auch auf alle anderen Parameter zugegriffen wird, also %EMAIL% etc.)
Nimmt man den Link aus dem vorherigen Kapitel
http://127.0.0.1/addons/melin_usv.jsp?store=unsub&M_S=rem&email=johndoe@foo.com
kann man nun die Abmelde-Bestätigungsseite so umabuen daß bei einem Klick ausgewählte Profildaten des Abonnenten dargestellt werden.
Eine mögliche Umsetzung des Ausgabeformulars kann wie folgt aussehen:
./msite/usv/res/storeunsub.html
Wirklich abmelden?
<form method=post action="/addons/melin_usv.jsp?STORE=final">
Email: %EMAIL%<p>
<input name="M_SUFFIX" value="unsubscribe" type=hidden>
<input name="email" value="%EMAIL%" type=hidden>
<input name="ok" value"ok" type=submit value = "Abmelden">
</FORM>
Die Variable %NAME% wird hier durch Werte aus dem Profil des Users ersetzt.
Im Browser ergibt sich folgende Ausgabe:
Nach dem Absenden des Formulars gibt es keinen Unterschied mehr zur direkten Abmeldung. Mit Hilfe dieser Technik läßt sich auch mit einfachen Mitteln eine Seite entwickeln mit der ein Abonnent seine Profileinstellungen aktualisieren kann - anstantt das Profil über das Grid zu löschen nutzt man in diesem Fall das Plug-In um ein existierendes Profil zu modifizieren.
28. Link Korrektur
In den meisten Mailings sind Links enhalten die zurück auf die Website des Versenders verlinken. Natürlich kann man direkt auf die Ziel-Website verlinken, es sit jedoch zweckmäßiger den Link zur Ziel-Websit über Melin umzuleiten. Hierzu bietet das Script melin_usv zwei Methoden an:
• REDIRECT
• FORWARD
Der Unterschied zwischen beiden Methoden ist, daß FORWARD nur weiterleitet und REDIRECT zusätzlich eine XML-Datei generiert.
Der Aufruf von
http://www.mserver.net/addons/melin_usv.jsp?FORWARD=http://www.melin.de
leitet den Besucher direkt auf die Website www.melin.de weiter.
Bei der Verwendung von
http://www.mserver.net/addons/melin_usv.jsp?REDIRECT=http://www.melin.de
wird zusätzlich eine XML-Datei in SITE-DIR/usv/red geschrieben die alle Parameter des Scriptaufrufs beinhaltet, im einfachsten Fall:
SITE-DIR/usv/red/1075853724221_854.redir
<REDIRECT>http://www.melin.de</REDIRECT>
Die Datei kann anschließend im Workflow-Grid mit dem XML-Reader weiter verarbeitet werden
Aus Anwendersicht sieht ein solcher Redirect-Link nicht besonders schön aus da nicht ersichtlich ist warum der Link nicht direkt erfolgt sondern über ein Script. Ein weiteres Problem von festen Links in einer Mail ist, daß diese nach einem Versand nicht mehr geändert werden können.
Hier setzt die Link Korrektur an. Im Hauptmenü von Melin kann der Menüpunkt "Link Korrektur" ausgewählt werden:
Im linken Teil wird ein Teil-String angegeben der im Link der Email enthalten sein muß und der durch den rechten Teil ersetzt wird.
Der Link
http://www.mserver.net/addons/melin_usv.jsp?REDIRECT=mlhp
wird also intern umgewandelt zu
http://www.mserver.net/addons/melin_usv.jsp?REDIRECT=http://www.melin.de
und der User wie zu erwarten ist weitergeleitet zur Homepage www.melin.de
Der Aufruf lässt sich sogar noch weiter verkürzen. Mit einem Eintrag
wird aus
http://www.mserver.net/addons/melin_usv.jsp?rdml
wieder intern wieder der gewünschte Link
http://www.mserver.net/addons/melin_usv.jsp?REDIRECT=http://www.melin.de
Hinweis: der Link wird komplett verglichen, es ist also darauf zu achten dass der zu ersetzende String nicht an anderer Stelle ebenfalls vorkommt.
Möchte man nun im Profil des Abonnenten vermerken dass er auf einen Link geklickt hat so setzt man
http://www.mserver.net/addons/melin_usv.jsp?REDIRECT=mlhp&EMAIL=info@melin.de
In der XML-Protokolldatei findet sich nun
SITE-DIR/usv/red/1075853724221_854.redir
<EMAIL>info@melin.de</EMAIL>
<REDIRECT>http://www.melin.de</REDIRECT>
29. Verschlüsselung
Wird der Link automatisch beim Versand einer Email generiert so kann der Aufruf ganz oder Teilweise verschüsselt werden.
Zu diesem Zweck gibt es im Email-Versenden-Plug-In den Tag:
URLSCRAMBLE[Zu verschlüsselder Text]
Zum Beispiel wird aus
URLSCRAMBLE[ http://www.mserver.net:8200/addons/melin.usv.jsp?STORE=2&unsubscribe=1&URLSCRAMBLE[email=%M_RECEIVER%]
wird beim Emfpänger
http://www.mserver.net:8200/addons/melin.usv.jsp?STORE=2&unsubscribe=1&s3mb1ZhVdg2xdhkZmdV21hVX.sJH14
Zur Verdeutlichung ist hier ein vollständiges Template dargestelllt:
Template.txt
Hallo Du,
hier ist ein Beispiel von %FROM% wie man eine Emailadresse oder irgendetwas sonst verschluesselt.
Normal: %M_RECEIVER%
Scramble: URLSCRAMBLE[%M_RECEIVER%]
Super, was?
Jetzt kann man damit Links bauen. Aus
http://www.mserver.net:8200/addons/melin.usv.jsp?STORE=2&unsubscribe=1&email=%M_RECEIVER%
wird dann
http://www.mserver.net:8200/addons/melin.usv.jsp?STORE=2&unsubscribe=1&URLSCRAMBLE[email=%M_RECEIVER%]
oder sogar
http://www.mserver.net:8200/addons/melin.usv.jsp?URLSCRAMBLE[STORE=2&unsubscribe=1&email=%M_RECEIVER%]
URLSCRAMBLE[Du liest auch alles, was?]
MfG
Melin
Beim Empfänger wird daraus:
Hallo Du,
hier ist ein Beispiel von spam@iforp.com wie man eine Emailadresse oder irgendetwas sonst verschluesselt.
Normal: imperia@mac.COM
Scramble: s3mb1dhkZmdV21hVX.sJH14
Super, was?
Jetzt kann man damit Links bauen. Aus
http://www.mserver.net:8200/addons/melin.usv.jsp?STORE=2&unsubscribe=1&email=imperia@mac.COM
wird dann
http://www.mserver.net:8200/addons/melin.usv.jsp?STORE=2&unsubscribe=1&s3mb1ZhVdg2xdhkZmdV21hVX.sJH14
oder sogar
http://www.mserver.net:8200/addons/melin.usv.jsp?s3mb1NOJMu2x122zpinpWnXmdWZ2x112zZhVdg2xdhkZmdV21hVX.sJH14
s3mb1tp2ygdZno2yVpXc2yVggZn,2y3xVn21514
MfG
Melin
Der Scramble-Tag kann für alle Daten verwendet werden bei denen Userdaten übergeben werden sollen.
Zum Beispiel
Anzeigen einer Status-Seite nach einem Bestätigungs-Klick bei Double-Opt-In:
Vorbereitung: auf dem Server muß eine Datei SITE-DIR/usv/res/store2.html existieren mit folgendem Muster-Inhalt:
store2.html
<html>
<title>store2.html</title>
<body bgcolor=white>
Hallo %EMAIL%,
Du hast es geschafft und auf den Link geklickt. Es wurde eine XML-Datei mit deinen Profildaten generiert.
Diese liegt hier: %MUSV_RESULTPAGE%
Viel Erfolg,
Melin 2.
PS: Diese Datei heisst SITE-DIR/usv/res/store2.html und wird dargestellt weil das Script melin_usv mit dem Parameter 2 aufgerufen wurde.
</body>
</html>
Dieses Beispiel nutzt eine weitere Funktion von melin_usv: Der Aufruf
melin_usv.jsp?STORE=NNN&KEY1=VALUE1&KEY2=VALUE2
generiert eine XML-Datei im Verzeichnis SITE-DIR/usv/web und gibt anschliessend die Datei SITE-DIR/usv/res/storeNNN.html aus. Der Inhalt der Datei wird zusätzlich geparst und die Werte aus der Parameterzeile dargestellt.
Somit wird beim Aufruf von
http://www.mserver.net:8200/addons/melin.usv.jsp?STORE=2&unsubscribe=1&email=imperia@mac.COM
Die Seite store2.html aus dem obigen Beispiel ausgegeben und der Inhalt verarbeitet:
Hallo imperia@mac.com
Du hast es geschafft und auf den Link geklickt. Es wurde eine XML-Datei mit deinen Profildaten generiert.
