Hallo!
Nach längerem Experimentieren und Kopieren ist es mir doch tatsächlich gelungen mit nachfolgendem TypoScript eine aufbereitete DirectMail zu versenden.
page = PAGE
page.headerData.10=TEXT
page.headerData.10.value (
<style type="text/css"> *
{margin:0; padding:0;}
body {background: #FFFFFF;}
div#main {padding:12px;}
</style>
)
page.bodyTag=<body>
page.10 < styles.content.get
page.10.wrap =<table><tr> <td valign="top"><img src=" fileadmin/Bilder/Bild01.jpg"></td> <td valign="top">|</td></tr> </table>
Meine Vorstellung ist nun (vielleicht über eine separate Html-Datei?) in der E-Mail den Empfänger direkt mit Namen anzusprechen.
Hat jemand eine Anregung wie man so was machen kann?
Ich danke Euch für Eure Hilfe im Voraus.
Jürgen
Für die personalisierte Anrede kannst du die Marker verwenden, die Direct Mail standardmäßig unterstützt. Die folgen dem Muster ###USER_feldname### und umfassen beispielsweise Name, Vorname, Titel etc. Sofern du weitere Felder verwenden möchtest, kannst du das über die Extension-Konfiguration (im Extension-Manager auf die Extension klicken) weitere Tabellenspalten aus tt_address freischalten, beispielsweise last_name oder sonstwas.
Anschließend platzierst du diese Marker (also z.B. ###USER_anrede### ###USER_title### ###USER_last_name###) einfach an der gewünschten Stelle im Content und beim Versand an einen Verteiler (nicht in der Testmail) werden die dann ersetzt durch die Daten z.B. aus der tt_address-Tabelle.
Genauere Infos findest du aber in der Doku zu Direct Mail unter "Personalizing direct mail content" (bei Version 2.6.2 auf Seite 8-9).
Hay Gregor!
Danke für die sehr ausführliche Erklärung und den Hinweis auf die entsprechende Stelle auf typo3.org.
Doch leider, was ich auch mache, es funzt nicht.
Ich habe alle Marker getestet - sowohl über Quickmail als auch über DirectMail.
Die einzigen Marker die mit Inhalt gefüllt werden sind:
###USER_uid###
###USER_firstname###
###USER_FIRSTNAME###
###USER_email###
###SYS_TABLE_NAME###
###SYS_MAIL_ID###
###SYS_AUTHCODE###
Natürlich habe ich auch im ExtManager auf DirectMail geklickt und im Feld
Additional DB fileds oft he reciepie
Additional fields that may be substituted in the direct mail messages
die nachfolgenden Felder eingetragen.
first_name, name, middle_name, last_name, title, address, city
Aber es kommt dennoch nichts anderes an. #evil#
Vielen Dank für die bisherige Mühe
Jürgen
Hi,
genau an diesem Punkt sitze ich auch mit directMail 2.6.2.
Die in der Konfiguration im EM gesetzten zusätzlichen Felder werden einfach nicht im Newsletter-Template ersetzt. Gibt es da einen Fehler in direct Mail ? Ich arbeite auch mit tt_adress als Datenlieferant...TYPO3 4.2.8
Hi,
die zusätzlichen Felder werden aus Sicherheitsgründen nicht ersetzt. Das kann man im Ext-Manager aber einstellen bei DirectMail welche Felder für ###USER_feldname### akzeptiert werden.
Für eine vollwertige Anrede mit Herr/Frau etc. brauch man aber eine (in meinem Fall selbstgebastelte) Mini-Extension die einen Hook macht um die Anrede korrekt einzubauen.
Grüße
PS: oops überlesen das ihr schon im EM wart... dann sollte es eigentlich klappen, bei mir geht es dann auf jedenfall wenn dort alles eingetragen ist.
Bedankt euch bei dem Programmier von Direct Mail, der ein php-trim() beim Einlesen der Konfiguration aus dem EM-Feld vergessen hat. Dadurch werden Feldnamen mit Leerzeichen auch so zu ersetzen versucht. Also ein Eintrag im EM-Manager mit "..., anrede" wird dem Marker ###USER_ anrede### zugeordnet und ein Datenbankfeld " anrede" gesucht. Das kann mit dem Leerzeichen davor natürlich nicht klappen.
Ihr müsst die Feldliste also ohne Leerzeichen nach den Kommata schreiben, dann klappt - zumindest bei mir 🙂
Hallo,
eine weitere Möglichkeit ist den Hook "mailMarkersHook" von direct_mail zu nutzen:
1. Mit dem Kickstarter eine extension erzeugen:
ext_localconf.php:
<?php
if (!defined ('TYPO3_MODE')) {
die ('Access denied.');
}
$hooks = array('EXT:directmail_personalization/class.tx_directmail_personalization.php:tx_directmail_personalization->mailMarkersHook');
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/direct_mail']['res/scripts/class.dmailer.php']['mailMarkersHook'] = $hooks;
?>
In der Extension Klasse dann die Funktion "mailMarkersHook" ausprogrammieren:
function mailMarkersHook ($params) {
$params['markers']['###USER_salutation###'] = 'Lieber Interessent';
// männlich
if($params['row']['gender'] == 'm') {
if($params['row']['last_name'] != '') {
$params['markers']['###USER_salutation###'] = 'Sehr geehrter Herr '.$params['row']['last_name'];
}
}
// weiblich
if($params['row']['gender'] == 'f') {
$params['markers']['###USER_salutation###'] = 'Liebe Interssentin';
if($params['row']['last_name'] != '') {
$params['markers']['###USER_salutation###'] = 'Sehr geehrte Frau '.$params['row']['last_name'];
}
}
return $params;
}
Im Newsletter Template muss dann nur noch ###USER_salutation### an der gewünschten Stelle eingesetzt werden und in der Extension Konfiguration von direct_mail in den "Additional DB fields" ebenfalls "salutation" hinzufügen.
Infos zu Hook gibts hier:
http://typo3.org/development/articles/how-to-use-existing-hooks/
Grüße,
Uwe
Hallo, hab mir deinen Ansatz als Grundsatz für die Lösung per Extension genommen und noch etwas erweitert:
#963103