Zum Inhalt springen

Verwendest du TYPO3 v10 oder neuer? Dann empfehle ich dir das neuere Tutorial mit dem aktuellen Lösungsweg "FluidEmail".

Einleitung

Das neue Form Framework in TYPO3 v8 wird von immer mehr Integratoren verwendet. Dabei taucht eine Frage in letzter Zeit häufiger auf: Wie kann ich unterschiedliche E-Mail-Templates für den Sender und den Empfänger einrichten – es gibt ja nur ein gemeinsames Template im HTML-Format und Plaintext?

Das ist auch richtig, in den Templates von EXT:form gibt es erstmal keine Unterscheidung zwischen den EmailToSender und EmailToReceiver Finishern. Dennoch lassen sich auf einfache Weise individuelle Templates zuweisen.

Der Trick besteht darin, dass man in jedem Finisher eigene templateRootPaths zum gewünschten Template anlegen kann. Das folgende Beispiel ist der Ausschnitt einer Form-Definition im YAML-Format, also ein mit EXT:form angelegtes Formular. Es zeigt nur den Teil mit den beiden Finishern; die renderables (Felder) und der Rest der Definition wurde zur Übersicht weggelassen. Weiter unten gibt es noch ein vollständiges Beispiel.

Form-Definition (Teilbereich der Finisher)

finishers:
  -
    identifier: EmailToReceiver
    options:
      subject: 'E-Mail from website'
      recipientAddress: your.company@example.com
      recipientName: 'Your Company name'
      senderAddress: '{email}'
      senderName: '{lastname}'
      replyToAddress: ''
      carbonCopyAddress: ''
      blindCarbonCopyAddress: ''
      format: html
      attachUploads: 'true'
      templateName: '{@format}.html'
      templateRootPaths:
        20: 'EXT:your_extension/Resources/Private/Forms/Emails/Receiver/'
      translation:
        language: ''
  -
    identifier: EmailToSender
    options:
      subject: 'Your message'
      recipientAddress: '{email}'
      recipientName: '{lastname}'
      senderAddress: your.company@example.com
      senderName: 'Your Company name'
      replyToAddress: ''
      carbonCopyAddress: ''
      blindCarbonCopyAddress: ''
      format: html
      attachUploads: 'true'
      templateName: '{@format}.html'
      templateRootPaths:
        20: 'EXT:your_extension/Resources/Private/Forms/Emails/Sender/'

Den oben angelegten Dateipfaden entsprechend liegen die beiden Templates dann unter

  • your_extension/Resources/Private/Forms/Emails/Sender/
    Html.html oder Plaintext.html
  • your_extension/Resources/Private/Forms/Emails/Receiver/
    Html.html oder Plaintext.html

Ein voll funktionsfähiges Beispiel gefällig?

Wer noch mehr wissen möchte, findet auf GitHub eine speziell angelegte Beispiel-Extension für Formulare. Darin enthalten ist unter anderem auch ein angepasstes HTML-E-Mail-Template, welches nur der Absender des Formulars erhält. Die Extension kann einfach installiert und die Beispielformulare in TYPO3 eingebunden werden.

Ich wünsche fröhliches Formulare basteln!

Beispiel-Extension auf GitHub