Zum Inhalt springen

Newsletter Direct Mail ( HTML Vorschau mit Name und Anrede )

Erstellt am 1. Oktober 2008 · 16 Antworten · letzte Antwort am 3. November 2011

Tags: Direct Mail, Frage

philipp1988 ·

Hallo Community,

ich habe folgendes Problem:

Mein Newsletter funktioniert einwandfrei bis auf eine einzige Sache:

In der Newsletter wird man mit Name , Vorname und Anrede angesprochen - funktioniert auch alles soweit 🙂

Da ich für die Nutzer - bei denen die Newsletter nicht 100% richtig angezeigt werden kann ( durch irgendein exotischen Webclient ^^ ) einen Link wo er sich die Newsletter im Browser angucken kann 😉
Zurzeit habe ich das so gelöst, dass ich einfach ein Link auf die Seite wo das Newsletter Template liegt gemacht habe - sprich http://www.seite.de/index.php?id=xx
Nur auf der Seite werden die Marker von Name, Vorname etc einfach ausgeben ( ###USER### etc ... )

Hat DirectMail schon so ein Feature oder habt ihr eine Lösung?

Mfg

Mopps ·

In der Newsletter wird man mit Name , Vorname und Anrede angesprochen - funktioniert auch alles soweit

Mich würde interessieren, wie man das macht? Kannst du das posten?

Zu deinem Problem kann ich dir leider nicht weiterhelfen. Verstehe auch nicht, wieso es beim Versenden funktioniert und beim Anschauen der Seite nicht. Ich dachte Direct Mail versendet schlicht die gerenderte Seite?

Grüße

maxhb ·

Hi!

philipp1988 schrieb

Hat DirectMail schon so ein Feature oder habt ihr eine Lösung?

So eine Lösung gibt es nicht innerhlab von direkt Mail.

Du kannst allerdings die entsprechenden Marker auf Deiner Newsletter-HTML-Seite per Typoscript befüllen:

page.10.marks {
  VORNAME = TEXT
  VORNAME.value = Max
  NACHANME = TEXT
  NACHNAME.value = Mustermann
}

Muss natürlich an Deine TS-Setup angepasst werden, aber der Weg sollte klar werden.

CU
maxhb

Hugisan ·

Hallo zusammen

Wie maxhb schon erwähnt hat, kann man das ganze gut mit Markern lösen. Hier noch einen ausführlicheren Lösungsansatz wie ich es machen würde.

1. Die Marker ###USER_first_name### und wie sie alle heissen, am Besten ins Template einfügen, da Sie bei meinem Test im RTE-Editor in der „Browser-Version“ nicht ersetzt wurden.

Danach einen ###HTML### Marker erstellen, und diesen ebenfalls nicht im RTE-Editor einfügen, sondern wieder direkt ins Template einfügen.

Mit folgendem TS-Script wird dann der ###HTML### Marker befüllt.

page.10.marks{
  HTML = COA
  HTML{
    10 = TEXT
    10.value = So muss der Newsletter aussehen
    10.typolink.target = _blank
    10.typolink.parameter.cObject = COA
    10.typolink.parameter.cObject {
      10 = TEXT
      10{
        data = page:uid
    	wrap = index.php?id=|
    	required = 1
      }
	
      20 = TEXT
      20{
         value = ###USER_first_name###
    	 wrap = &first_name=|
    	 required = 1
      }
    } 
    10.wrap = |  
  }
}

Das Ganze kann nun nach belieben erweitert werden.

Damit der Marker ###USER_first_name### beim aufrufen des Links ersetzt wird, benötigen wir etwas in diese Richtung.

[globalSting = GP:first_name = * ]
page.10.marks{
  USER_first_name = COA
  USER_first_name{
    10 = TEXT
    10.data = GPvar : first_name
  }
}
[end]

Dieser Marker darf erst angesprochen werden, wenn auch in der URL der benötigte Parameter übergeben wird. Daher wird das ganze mit [globalSting = GP:first_name = * ] überprüft.

ACHTUNG: Bei der Version 4.2.2 funktioniert diese Überprüfung nicht mehr. Man kann aber mit [userFunc = user_match()] auch das gleiche Resultat erzielen.

Was man auch noch machen kann ist, in der Plaintext Version einen Link zur persönlichen HTML Version mitgeben.

Einfach einen beliebigen Marker erstellen, diesen in der Plaintext Vorlage einfügen und mit folgendem Script befüllen.

tx_directmail_pi1{
  10{
      marks.MYLINK = COA
      marks.MYLINK{
        10 = TEXT
        10.typolink.target = _blank
        10.typolink.returnLast = url
  	10.typolink.parameter.cObject = COA
  	10.typolink.parameter.cObject {
    	  10 = TEXT
          10{
             data = page:uid
    	     wrap = index.php?id=|
    	     required = 1
          }
	
    	  20 = TEXT
    	  20{
    	    value = ###USER_first_name###
    	    wrap = &first_name=|
    	    required = 1
    	  }
    	  
    	  
    	} 
    	10.wrap = http://www.test.com/|  
      }
   }
}

Hoffe Damit einwenig weitergeholfen zu haben.

joni ·

Hallo Hugisan
Herzlichan Dank für deine Ausführliche Erklärung. Das hat mir sehr geholfen. Wo ich aber noch nicht ganz steige, ist mit der "userFunc". Ich verwende TYPO3 4.2.6. Daher funktioniert es mit "[globalSting = GP:first_name = * ]" nicht.

ACHTUNG: Bei der Version 4.2.2 funktioniert diese Überprüfung nicht mehr. Man kann aber mit [userFunc = user_match()] auch das gleiche Resultat erzielen.

Leider habe ich keine Ahnung in Sachen PHP und weiss nicht, wie ich eine userFunc richtig erstelle. Wie muss der TS und der PHP-Code für die Localconf aussehen, damit ein Benutzer, der über www.meinedomain.net/index.php?id=23&first_name=SeinName auf die Seite kommt, den Marker ###USER_first_name### auch mit SeinName ersetzt bekommt?

Vielen Dank für alle Vorschläge.

Lg joni

Hugisan ·

Hallo Joni

Also, anstatt

[globalSting = GP:first_name = * ]
page.10.marks{
  USER_first_name = COA
  USER_first_name{
    10 = TEXT
    10.data = GPvar : first_name
  }
}
[end]

fügst Du

[userFunc = user_match()]
page.10.marks{
  USER_first_name = COA
  USER_first_name{
    10 = TEXT
    10.data = GPvar : first_name
  }
}
[end]

in dein TS Setup ein und in die typo3conf/localconf.php etwas in diese Richtung:

function user_match(){
	if($_GET['first_name']) return true;
	else			return false;
}

Hoffe du kannst damit etwas Anfangen.

Gruss

Cybersmog ·

Der oben genannte Weg funktioniert leider nicht mit aktivierten Jump URL's.
Gibts da eine Idee, wie man das auch mit Jump URL's hinbekommen kann?

Gruß
Peter

Hugisan ·

Hallo Peter

Sollte eigentlich funktionieren. Macht bei dir evt. doNotCheckReferer Probleme?

Im install Tool kannst Du [SYS][doNotCheckReferer] = 1 setzen.

Gruss

Cybersmog ·

doNotCheckReferer ist schon auf 1 gesetzt.

Vielleicht sollte ich das Problem genauer beschreiben:
In der eigentlichen URL im Newsletter hab ich wie oben beschrieben den Marker als GET Parameter drangehängt. Der Marker wird aber nur dann durch z.B. den Vornamen ersetzt, wenn Jump URL's ausgeschaltet sind.

Könnte das vielleicht was mit TemplaVoila zu tun haben?

Gruß
Peter

Hugisan ·

Hm, kenne mich mit TemplaVoila leider nicht aus. Die GET Parameter siehst du aber in der URL?

Welche Version von Typo3 verwendest Du?

Gruss

Cybersmog ·

Alles auf dem neuesten Stand: TYPO3 4.2.6, Direct Mail 2.6.2

Der GET Parameter ist da, Marker ist weg, aber nicht ersetzt worden:
domain.tld/index.php?id=123&n=

Gruß
Peter

bujaka ·

Hallo Hugisan,

sobald ich

function user_match(){
	if($_GET['first_name']) return true;
	else			return false;
}

in die typo3conf/localconf.php schreibe, kann Direct Mail den Inhalt der Mails nichtmehr auslesen 🙁
Hast Du evtl. ne Idee an was das liegen könnte?

Besten Dank und viele Grüße
Flo

Hugisan ·

Hallo bujaka

Kannst Du noch weitere Informationen preisgeben wie zum Beispiel Typo3 Version, Direct Mail Version und evtl. ob Du TemplaVoila verwendest?

Gruss

XenoX ·

Der Thread ist zwar schon etwas älter. Ich habe aber genau sowas gesucht und habe etwas probiert.
Dabei ist mir ein kleiner Flüchtigkeitsfehler aufgefallen.

Hugisan schrieb
[globalSting = GP:first_name = * ]
page.10.marks{
  USER_first_name = COA
  USER_first_name{
    10 = TEXT
    10.data = GPvar : first_name
  }
}
[end]

globalSting sollte globalString heißen.

[globalString = GP:first_name = * ]
page.10.marks{
  USER_first_name = COA
  USER_first_name{
    10 = TEXT
    10.data = GPvar : first_name
  }
}
[end]
xen0x ·

Guten Abend,

bin gerade auf diesen schon etwas älteren Thread aufmerksam geworden und versuche das dort beschriebene umzusetzen, scheitere aber bei der Ersetzung der Marker?

page.10.marks{
  HTML = COA
  HTML{
    10 = TEXT
    10.value = So muss der Newsletter aussehen
    10.typolink.target = _blank
    10.typolink.parameter.cObject = COA
    10.typolink.parameter.cObject {
      10 = TEXT
      10{
        data = page:uid
    	wrap = index.php?id=|
    	required = 1
      }
 
      20 = TEXT
      20{
         value = ###USER_first_name###
    	 wrap = &first_name=|
    	 required = 1
      }
    } 
    10.wrap = |  
  }
}

Kann mir jemand einen Tipp geben, wieso der Marker ###HTML### bei mir nicht ersetzt wird? Danke schön für eure Mühe!