Einleitung
Das Modul "Newsletter" ist ein einfaches Newslettersystem, ist dem sich User in verschiedene Newsletter eintragen oder austragen, Schreibberechtigte Newsletter an die User versenden können.Nachrichten werden in ein Browserformular eingegeben und mit einem Klick an alle User verschickt, die sich in den Betreffendem Kanal eingetragen haben. Es ist auch möglich, Nachrichten über mehrere Kanäle gleichzeitig zu verschicken.

Aufruf
Das Modul wird mit dem Aufruf {execmacro="newsletter"}eingebunden.
Zusätzlich kann der Kanal angegeben werden: {execmacro="newsletter" param="channel=Homepage"}.
Erlaubt sind die Werte:
nochannel: Kein Kanal, d.h. User werden dem Kanal 0 zugeordnet.
channel=Homepage: User werden den Kanal "Homepage" zugeordnet
channel=Homepage,Arzt,Common: User werden den angegebenen Kanälen zugeordnet

Allgemeine Konfiguration
Die Newsletter werden über die Datei newsletter.ini konfiguriert. Die Newsletterkanäle werden in der Syntax
channel_[fortlaufende Nummer]=[Name des Newsletter] abgelegt.

[channels]
channel_0=hidden
channel_1=Homepage
channel_2=Arzt
channel_3=Apotheker
channel_4=Presse
channel_5=Common
channel_6=Computers

Der erste Kanal (channel_0) kommt zum Einsatz, wenn Sie den Newsletter ohne Kanäle betreiben wollen. Der Name lässt sich aber beliebig ändern.

Neben der eMail-Adresse können zusätzliche Eingabefelder definiert werden. Diese werden in der Syntax field_[fortlaufende Nummer]=[Name des Eingabefeldes] abgelegt.

[custom]
field_1=Name
field_2=Vorname
field_3=Country
field_4=Gender

Achtung: Die hier angegebenen Felder müssen in newsletter.dat angelegt werden. Benutzen Sie dazu custdef/newsletter.def.

Weitere Optionen in der newsletter.ini

[options]
doubleoptin=1
activationtime=1

Wenn doubleoptin auf 1 steht, bedeutet das, dass der User erst noch einmal per link oder activation key die Teilnahme am Newsletter bestätigen muss. Dies soll verhindern, dass wahllos eMailadressen eingetragen werden, um deren Postfächer zu spammen. Wenn activationtime auf 1 steht, bedeutet das, dass der User eine Minute Zeit hat, um seinen Account zu aktivieren. Tut er das nicht in der gegebenen Zeit, wird sein Account automatisch gelöscht. Steht z.B. activationtime auf 5, so hat der User fünf Minuten Zeit. Die activationtime wird also in Minuten angegeben.

Die Fehlermeldungen werden ebenfalls in der newsletter.ini abgelegt
[error]
eMailAlreadyExist= Die Adresse <b>{email}</b> existiert bereits
eMailEmpty= Keine eMail-Adresse angegeben
invalidEmail= Die Adresse <b>{email}</b> ist bisher nicht registriert
timeisLeave= Die Adresse <b>{email}</b> wurde gelöscht weil die Zeit zum aktivieren überschritten wurde
newpswderr= Neue Kennwörter stimmen nicht überein
oldpswderr= Das alte Kennwort wurde nicht richtig eingegeben

eMailAlreadyExist
wird zurückgegeben, wenn die eMail bereits im System eingetragen ist.
eMailEmpty wird zurückgegeben, wenn der User keine eMailadresse in das dafür vorgesehene Feld eingetragen hat.
invalidEmail wird zurückgegeben, wenn eine ungültige eMail-Adresse angegeben wird.
timeisLeave wird zurückgegeben, wenn der User sich nicht in der bei activationtime definierten Zeit angemeldet hat.
newpswderr wird zurückgegeben, wenn der User beim Passwort ändern nicht zweimal das gleiche neue Passwort eingegeben hat.
oldpswderr wird zurückgegeben, wenn das alte eingegebene Passwort nicht mit dem Passwort übereinstimmt, das für diesen Account hinterlegt ist.

Templates
Die Darstellung der eMails und der Formulare wird von Templates bestimmt. Diese können wie HTML-Seiten angepasst werden, wobei die Platzhalter eine Sonderstellung einnehmen.

Platzhalter
Alle Ausdrücke in geschweifter Klammer stehen für Platzhalter. Als Beispiel dient hier das Template account_mail:
tdbmail
admin@tdb.de
informer@tdb.de
Ihr Newsletter Abonnement
Mail: {eMail}
Am:   {today}
Um:   {now}
IP:   {ip}

Gratulation!
Sie sind mit folgfenden Daten an unserem Newsletter angemeldet:
eMail: {eMail}
Kanäle: {channels}
{custfields}
Ihr Kennwort : {code}
Abmelden: {linktounsubscribe}
Einstellungen: {linktocontrol}


Hier gibt es folgende Platzhalter
{email}: eMailadresse des Users
{today}: Das aktuelle Datum
{now}: Die aktuelle Systemzeit des Servers
{ip}: Die aktuelle IP
{channels}: Die abonnierten Kanäle
{custfields} : Die in der newsletter.ini definierten Felder und deren Inhalte
{code}: Das Passwort
{linktounsubscribe}: Der Link, um sich aus dem Newsletter auszutragen
{linktocontrol}: Der Link zum Kontrollzentrum

Der Inhalt zwischen {channelinfo} und {/channelinfo}wird nur ausgegeben, wenn der Newsletter mit Kanälen eingesetzt wird. Sonst wird der Bereich zwischen diesen Platzhaltern gelöscht. Dadurch ist es möglich einen Newsletter anzubieten, der auf einigen Seiten die Auswahl von Kanälen erlaubt, auf anderen nicht.

Templates und deren Funktion:
account_mail : Mailvorlage nach Aktivierung des Accounts.
activ_mail : Mailvorlage nach erstem Anmelden.
activation : Bildschirm nach dem ersten Anmelden.
congratform : Bildschirm nach Aktivierung.
subscribe: Anmeldebildschirm entweder zum Neu-Anmelden (oben) oder - bei bestehender Anmeldung - zur Aktivierung und als Login in den eigenen Useraccount (unten).
unsubscribe : Abmeldebildschirm.
pw_mail : Mailvorlage, wenn der User das Paßwort nochmals anfordert.
changeemail : Mailvorlage, wenn der User die eMail-Adresse ändert.
mail : Mailvorlage für Newsletter.
mail_html: Mailvorlage für Newsletter als HTML. Diese darf auch Bilder enthalten.
getpw : Bildschirm, der den Paßwortversand bestätigt.
email_not_found: Nachricht, die Ausgegeben wird, wenn ein User sich sein Kennwort zusenden lässt aber die angegebene eMail-Adresse nicht in der Datenbank gefunden wird.
editmesg : Wenn der Anwender seine Einstellungen ändert, erhält er nach dem Speichern diese Nachricht angezeigt.
confirmemail : Falls ein Anwender seine eMail-Adresse ändert und auf den Bestätigungslink klickt, erhält er diese Nachricht am Bildschirm.


Newsletter versenden
Der Versand eines Newsletters erfolgt im Editor auf der Seite Tools. Ein Klick auf den Schriftzug Newsletterläßt die Sendemaske erscheinen. Dort können dann Text und Überschrift in Message und Subject (=Betreff) eingegeben werden. In den Checkboxen wählt man dann die Kanäle aus, die die soeben eingegebene Nachricht erhalten sollen. Mit dem Test-Button sendet man eine Testmail an sich selbst, der Submit-Button sendet den Newsletter ab.

Sie können auch Felder aus der Datenbank zur Personalisierung verwenden. Das Funktioniert genauso wie bei den Vorlagen. Im HTML-Teil, müssen allerdings Platzhalter in dieser Form angeben werden: \{feldname\}.


Tipp:
Kanäle lassen sich nachträglich zusammenfassen. Dazu in Tools/Newsletter/Konfiguration den Kanälen den gleichen Namen geben und die Checkbox rechts unter den Kanalnamen aktivieren. Beim Speichern werden die Kanäle mit gleichen Namen dann zusammengefasst.

Verbinden von Newslettersystem und Userverwaltung:
- Fügen Sie irgendwo im Template/login/new hinzu:
Zum Newsletter anmelden <input type=checkbox name=newsletter><br>
{channels}
- Genauso für /login/edit
- Fügen Sie in /login/newmail ein:
{ifnewsletter="subscribed"}
Newsletter:
-------------------------
Sie haben sich für unseren Newsletter angemeldet.
{channelinfo}
Kanäle/Themen:
{channels}
{/channelinfo}
{ifnewsletter="doubleoptin"}
{ifuser="wait"}
Vielen Dank für Ihre Anmeldung.
{elsifuser="wait"}
Bitte bestätigen Sie die Anmeldung mit folgendem Link:
{linktoactivate}
{enduser="wait"}
{elseifnewsletter="doubleoptin"}
Abmelden: {linktounsubscribe}
Einstellungen: {linktocontrol}
{endifnewsletter="doubleoptin"}
{endifnewsletter="subscribed"}

Man kann auch ein bestimmtes Feld in der Nutzerdatenbank angeben. Beispielsweise
[user]
cms_usermanagement=Newsletter

Das bedeutet, dass es ein Feld Newsletter (Boolean) in der usr_user  geben muss. Beim versenden eines Newsletters bekommen alle Nutzer dort  eine Mail, bei denen in diesem Feld eine 1 steht.

Bounce Handler:
Mails die nicht zugestellt werden können, werden automatisch bearbeitet  und je nach Fehlerart gegebenenfalls aus der Datenbank gelöscht. Das  funktioniert allerdings nur, wenn die Newsletter-Datenbank für den  Newsletter benutzt wird und nicht die Benutzerdatenbank.
Um das zu benutzen muss man das newsletter.prg im Scheduler aufrufen.  Einmal am Tag reicht dabei völlig. In der newsletter.ini gibt man an:
[bounce]
server=mailserver:110
account=Mailserveraccountname
pw=Kennwort
mailto=admin@email
Das sind POP3 Zugangsdaten, wo die  fehlgelaufenen Mails abgeholt werden und eine Email-Adresse, an die  Probleme zugestellt werden. Nicht alle Bounces können automatisch  bearbeitet werden. Rückmeldungen der Art "Ich bin bis xxx nicht im Büro"  werden dann an den Admin zugestellt, der diese evtl. noch per Hand  durchsehen kann. Das hält sich aber alles sehr in Grenzen. Ich nutze die  Funktion schon einige Monate. Der Sinn ist natürlich auch hier, nicht  unnötig viele Mails zu versenden und dann evtl. als Spammer zu gelten.
Der Bounce-Handler funktioniert besser, wenn man in den verschickten  Mails eine eindeutige Kennung des Empfängers "versteckt". Das mach man  z.B. so:
<!-- bl{lfduser} -->

Clicktracker
Dazu trägt man in der newsletter.ini ein:
[linktracker]
active=1
urlprefix=http://doku.eforia.de/nll/
Jeder Link wird nun umgelenkt durch eine  Adresse die beim urlprefix angegeben ist. Das nll soll hier für  Newsletter-Link stehen und funktioniert so nur, wenn in der .htaccess  eine entsprechende Anweisung vorhanden ist:
RewriteRule nll/(.*) /custprg/newsletter.prg?track=$1
Das  Track macht schon klar, dass nebenbei auch die Klicks mitgezählt  werden. D.h. man weiß auch, was die Leser am meisten interessiert. Man  kann das auch ohne die Umleitung machen, dann muss die URL eben  angepasst werden. Mit ist es eben kürzer und schöner.

Opening Tracker
Dazu kann man im Newsletter das
<link rel="stylesheet" type="text/css"  href="{systemurl}custprg/newsletter.prg?trk=1&type=css&lfd={lfduser}&code={code}"  />
oder das
<img src="{systemurl}custprg/newsletter.prg?trk=1&type=image&lfd={lfduser}&code={code}">
benutzen.
eforia® web manager Dokumentation
Stand V 3.01 / 20.12.2010
© Horst Klier
http://www.klier.net
Impressum