Update: TYPO3-Newsletter mit Direct Mail und Direct Mail Subscription

16. November 2010 | 51 Kommentare

TYPO3 Tutorials by undkonsorten Berlin

update: 19.09.2011 Tutorial zur Installation von Direct Mail (2.6.8) und Direct Mail Subscription (1.1.0) mit TYPO3 (4.4.4).

Wohl zu kaum einer anderen TYPO3-Extension gibt es so viele Tutorials und Forenbeiträge wie zu Direct Mail und Direct Mail Subscription. Und auch wenn es etliche gibt, die Direct Mail entnervt abgeschworen haben und stattdessen auf leistungsfähigere Lösungen setzen, ist Direct Mail für kleinere Newsletter, die ihre Adressen vor allem über die Webseite selbst sammeln, nach wie vor eine brauchbare Lösung. Deswegen von uns an dieser Stelle der Versuch, den vielen Anleitungen eine weitere – hoffentlich verständlichere – hinzuzufügen.

Denn mit ein bisschen Routine lässt sich innerhalb von nicht einmal einer Stunde eine sauber funktionierende Newsletter-Funktion mit An- und Anmeldung erstellen.

Notwendige Extensions

Wichtig ist: Direct Mail baut auf der Extension Address List  (tt_address) auf, auch wenn das nicht eindeutig dabeisteht. Deswegen: Zuerst tt_address installieren, dann Direct Mail (direct_mail) und dann Direct Mail Subscription (direct_mail_subscription). Wird die Reihenfolge missachtet, wird keine UID-Spalte in der TT-Adress-Datenbank angelegt und entsprechende Fehlermeldungen ausgegeben. Diese sind oft nur sehr garstig zu beheben (Falls Sie wegen genau dieses Fehlers auf dieser Seite gelandet sind: Versuchen Sie mittels phpMyAdmin die Spalte UID in der Tabelle tt_adress manuell anzulegen, wie das in diversen Foren empfohlen wird).

Direct-Mail-Ordner erstellen

Nach der Installation und einem Reload erscheint der Menüpunkt „Direct Mail“ unter “Template“. Jetzt einen SysOrdner anlegen und als Erweiterung in den Seiteneigenschaften des Ordners „Direct Mail“ auswählen.

Direct Mail (TYPO3) Ordnerstruktur

Dadurch wird der Ordner auch über das Modul Direct Mail verwaltbar. Somit kann man jetzt auf das Modul “Direct Mail” und den Ordner klicken und im Punkt Modulkonfiguration die Grundeinstellungen (Absender-Mailadresse etc.) vornehmen. Wenn die Webseite auf UTF-8 läuft, dann sollte man auch den Zeichensatz der Mails auf UTF-8 stetzen. Als Kodierungsverfahren verwenden wir die base64. Die Bilder inkludiern wir nicht in die Mails.

Das direct_mail modul

Das Direct-Mail-Modul

Änderungen, die Sie hier vornehmen werden in der Seiten-TSConfig des Ordners “Newsletter” gespeichert.

Direct-Mail-Statistik

Direct Mail Modul: Wichtig für die Statistik

Direct Mail Modul: Wichtig für die Statistik, die Jump URL's

Hier können auch Umleitungen für Links größer als 76 Zeichen erstellt werden (sonst kann es durch den Zeilenumbruch zu Problemen mit dem Bestätigungslink kommen). Will man die Newsletter-Statistik nutzen, sollte man die Jump URL‘s aktivieren. [BUG #7704/TIPP: Wenn bei der Statistik immer nur ein Empfänger auftaucht, dann sich mal den Bug Tracker anschauen oder einfach auf die aktuelleste Direct-Mail-Version updaten.] Der aktuelle Screenshot ist eine Konfiguration, die bei uns zur Ausgabe von Statistiken führt und damit funktionert.

Unter Empfängerliste können Sie eine Testliste mit dem Typ „Normale Liste“ anlegen und einen oder mehrere Empfänger eingeben, speichern und über „Quick Mail“ testen, ob die Mail wie gewünscht ankommt. Ist das der Fall, ist zumindest Direct Mail richtig konfiguriert. Jetzt die wirkliche Newsletterliste anlegen und als Typ „Von Seiten“ auswählen

Direct Mail TypoScript-Template

Im “Newsletter”-Ordner sollte man ein Extension-Template anlegen, dass erstmal alle Angaben aus anderen, zuvor eingebundenen Templates löscht. Es macht nicht wirklich Sinn, die Dinge, die für die Webseite in Templates definiert wurden, auch mit im Newsletter herumzuschleppen.

Direct Mail Template: Alles löschen

Weiterhin ist es wichtig, dass die Direct-Mail-Templates inkludiert werden, sonst hat man später mit einer Fehlermeldung wie “Newsletter could not be fetched” zu kämpfen.

Direct Mail TypoScript Templates includieren

Direct Mail TypoScript Templates includieren

Damit wir in dem Newsletter nicht Code, Styles und JavaScripts aus allen anderen Extensions mitschleppen, beginnen wir im Setup mit der großen Säuberung:

plugin {
  tx_cssstyledcontent._CSS_DEFAULT_STYLE >
  tx_ttaddress_pi1 >
  tx_bddbflvvideogallery_pi1 >
  feadmin >
  tx_newloginbox_pi1 >
  tx_srlanguagemenu_pi1 >
  # .... und weitere ....
}
page {
  stylesheet >
  headerData.10 >
  headerData.10 = FILE
  headerData.10 {
	file = {$stylesheet}
	wrap = 
  }
}
config.disableAllHeaderCode = 0
config.disableAllHeaderCode = 0

Wichtig ist noch, in den Constants die URL des Newsletter einzutragen (sonst werden später keine Bilder im Newsletter angezeigt). Dies geht so:

plugin.tx_directmail_pi1.siteUrl = http://www.domain.com/

Das Newsletter-Template/HTML-Vorlage

Für eine saubere Ausgabe des Newsletters  – vor allem wenn es mehrere Spalten geben soll – ist es leider kaum möglich, ein solides Layout zu bauen, das in Webmailern (Gmail, GMX, web.de, hotmail), Thunderbird, Outlook (vor allem 2007 und 2010 – HASSS!), Eudora Mail (u.v.a.m.) angezeigt wird, ohne auf Tabellen zurückzugreifen. Wir sind uns im Klaren darüber, dass das mit Barrierefreiheit nicht einhergeht, aber was soll man tun… Die Online-Newsletterdienste wie MailChimp, Campaign Monitor oder Cake Mail setzten auch auf Tabellen.  Wenn man sich anschauen will, wie robuste HTML-Newsletter-Templates gebaut werden, lohnt es sich, dort mal ein paar Beispiele von fertigen Newsletter-Layouts anzuschauen.

Ansonsten muss man leider sagen, je näher man im Ur-HTML Version -1.0 coded, desto höher ist die Chance, dass es überall sauber aussieht. Da fängt man plötzlich wieder an bei selfhtml zu suchen, wie man denn ein Floating ohne CSS hinbekommen hatte. Versucht generell, ohne externe StyleSheets auszukommen. Vergesst Hintergrundbilder!

Direct Mail mit Plain-Text

Um die Newsletter auch als Plain-Text zu versenden, muss man im Modul “Direct Mail” > “Konfiguration” bei “Format der E-Mails” der Wert “HTML und Text” auswählen sowie bei “Parameter, normaler Text” den Wert &type=99 eintragen. Das sorgt später dafür, dass aus der Newsletter-Seite auch als Plain Text Seite generiert/ausgelesen wird. Natürlich muss dazu das “Direct Mail Plain text”-Template im Root Template unter “Include static (from extensions)” geladen werden (siehe Screenshot oben zum TypoScript-Template).

Das Template, welches nun geladen wird, wenn eine Seite mit &type=99 aufgerufen wird, befindet sich unter: /typo3conf/ext/direct_mail/pi1/tx_directmail_pi1_plaintext.tmpl. Dieses sollte nun noch nach Bedarf angepasst werden.

Direct Mail Subcription

Damit können zwar im Backend Usergruppen angelegt werden, an die dann ein Newsletter verschickt werden kann, die Möglichkeit, sich direkt auf der Webseite anzumelden, fehlt allerdings noch. Hierfür benötigen wir „Direct Mail Subscription“, das wir ja bereits installiert haben. Dieses einfach als “Neuer Seiteninhalt > Plugin > Direct Mail Anmeldung” einbinden. Die Newsletter-Anmeldung sollte jetzt auf der entsprechenden Seite korrekt angezeigt werden und auch eine Bestätigungsmail verschicken. Lediglich zwei Probleme sind noch zu lösen: Erstens ist alles in Englisch und zweitens funktioniert die Anmeldung für den Benutzer zwar, die Adressen verschwinden aber im Nichts.

Die Sprachausgabe wird durch die Datei fe_admin_dmailsubscrip.tmpl gesteuert, die normalerweise im Extension-Verzeichnis liegt [typo3conf/ext/direct_mail_subscription/pi]. Ich lege sie nach dem Editieren aber immer im Fileadmin ab und lege den entsprechenden Pfad dorthin (siehe unten).

Standardmäßig ist in Direct Mail Subscription auch eine Möglichkeit vorgesehen, Newsletter verschiedener Kategorien zu abonnieren. Da ich das normalerweise nicht brauche, kommentiere ich die entsprechende Passage (ca. Zeile 160 – 180) aus. Da ich keine weitere Daten erheben will, nervt mich auch die „Profil bearbeiten“-Funktion nur. Auch diese kommentiere ich für gewöhnlich aus (###TEMPLATE_EDIT###).

Allerdings gibt es zwei Fehlermeldungen, die direkt per TypoScript definiert werden (siehe unten).

Als letzter Schritt muss jetzt noch ein Extension-Template angelegt werden (entweder auf der Seite, wo die Newsletter-Anmeldung stehen soll, oder auf einer dieser Seite übergeordneten Seite – z.B. wenn die NewsletterAnmeldung von verschiedenen Seiten möglich sein soll).

Folgende Einträge müssen im TypoScript-Template vorgenommen werden:

CONSTANTS

plugin.feadmin.dmailsubscription {
 pid = 10
 templateFile = fileadmin/templates/dmailsubscr.tmpl
}

(wobei die PID die ID des DirectMail-Sysordners ist und hier natürlich der Pfad eingefügt werden muss, in dem das Template liegt.)
Wenn man es anpassen will, empfiehlt es sich, diese Datei in ein eigenen Verzeichnis zu kopieren, sonst ist die schöne Arbeit beim nächsten Extension-Update dahin.

SETUP

plugin.feadmin.dmailsubscription {
  setfixed {
	approve._FIELDLIST = uid,pid
	delete._FIELDLIST = uid,pid
  }
  evalErrors.email {
	uniqueLocal = Sie sind bereits für unseren Newsletter eingetragen!
	email = Die Mailadresse ist ungültig!
  }
}

Jetzt sollte eigentlich alles funktionieren. Was mir noch nicht gefällt ist, dass die Mailadresse bei der Abmeldung nicht überprüft wird.

Ach ja: Möchte man nur HTML-Mails verschicken, sollten auch alle Abonnenten nur HTML-Mails erhalten können. Das geht mit folgendem TypoScript:

plugin.feadmin.dmailsubscription {
  create.overrideValues.module_sys_dmail_html = 1
}

Damit stellt man sicher, dass jeder, der sich anmeldet, automatisch HTML-Mails bekommt. Sprich “Empfange HTML Mails” ist angeklickt.

Mails Automatisiert mit Cronjob versenden

Damit man nicht immer den Mailversand manuell anstoßen muss, kann sollte man – besonders bei einer großen Empfängerzahl – einen Cronjob einrichten, der diese Aufgabe erledigt. Dazu sollte zuerst einen TYPO3-Backend-Benutzer (ohne Gruppen, ohne Admin) mit dem Namen _cli_direct_mail anlegen. Dann kann man in die Cronjobverwaltung seines Serveranbieters gehen und in die Befehlszeile folgenden String eingeben:

/ABS/PATH/TO/SITE/typo3/cli_dispatch.phpsh direct_mail masssend

Bei Hetzner arbeiten wir mit folgendem Befehl (erst php5 aufrufen!)

/usr/bin/php5 /usr/www/users/kunde/typo3/cli_dispatch.phpsh direct_mail masssend

Bei Mitwald ist die Sache ein bischen kompizierter. Man findet man dort aber Hilfe in der – Überraschung!! – Hilfe.

Bounce-Handling: Die Empfängerliste sauber halten

Bounce-Handling dient dem Reinhalten der Datenbank. Wenn einem Empfänger keine Mail zugestellt werden kann, sollte dieser Eintrag richtigerweise auch aus der Datenbank entfernt werden. Mit Direct Mail ist dies über fetchmail möglich. Allerdings braucht man im Prinzip einen eigenen Server (Root- oder Cloud-Server), um diesen Service richtig zum laufen zu kriegen und zu konfigurieren (bei Mittwald war nach einem Telefonat mit dem Service das fetchmal auch auf einem Managed Server möglich. Bei Hetzner geht’s z. B. nicht.) Es gibt aber eine Erweiterung namens Direct Mail Return Mail Analysis (sl_direct_mail_return), die das ganze auf PHP-Basis erledigt. Eine kleine Dokumentation gibt es auf dem Blog von SPINLAB.

Mailversand vereinfachen

TYPO3, direct_mail: Step 3 Mailversand entfernen

Im Backend kann man auch den Versandprozess noch ein wenig vereinfachen. Mit folgendem User-TS-Config kann man beim Newsletterversand den Step 3 “Categories/Kategorien” entfernen und die Auswahl am Anfang auf die benötigten Funktionen einschränken:
tx_directmail {
hideSteps = cat
hideTabs = ext, quick, dmail
defaultTab = int
}

 

 

.

Weiterführende Links

Direct Mail Tutorial
Direct Mail Manual

Ähnliche Artikel:

Meta-Daten



51 Kommentare

Auch mal Kommentieren:

Kommentar