HowTo:EMail Template

Aus WEB-Shop Software Wiki
Version vom 27. September 2012, 07:25 Uhr von Yogi (Diskussion | Beiträge) (→‎Kopfzeilen der Text-Datei)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springenZur Suche springen

Einrichten der Email-Konfiguration

ACHTUNG: ab V1.0.10

Die Email Vorlagen liegen im tempates/_core/mail Verzeichnis

Wenn Du eines dieser Templates verändern möchtes, so kopiere es in das entsprechende Verzeichnis in Deinem Template-Ordner!

Für jede mögliche Email gibt es zwei verschiedene Templates, ein Text-Template und ein HTML-Template. Das Text-Template kann die folgenden Kopfzeilen enthalten, Kursiv geschriebene Werte sind hierbei optional:

  • SUBJECT: Betreff der Email
  • TO: "Klartext-Name" <email-adresse>
  • FROM: "Klartext-Name" <email-adresse>
  • REPLY: "Klartext-Name" <email-adresse>
  • CC: "Klartext-Name" <email-adresse>
  • BCC: "Klartext-Name" <email-adresse>
  • ATTACHMENT: <Dateiname> Angezeigter_Name

Referenzen in HTML Dateien kann man entweder als Datei oder als HTML Referenz angeben. Gibt man diese als Datei an so wird die Datei als Inline-Attachment mit der EMail verschickt - es werden als Bilder beim Öffnen der EMail nicht von extern nachgeladen.
Angabe der Referenz auf das ShopLogo im aktuellen Template: als Datei: <img src="{$tpl_path}img/logo.gif"> als Web-Link: <img src="http://...">

Diese Zeilen müssen am Anfang der TEXT-Version (hinter dem Kommentar /* ... */ der jeweiligen Email) definiert werden, und zwar je Zeile ein Feld.

Der Vorteil bei den Angaben im Template ist, dass diese nun sprachgesteuert angegeben werden können. Natürlich hätte man diese Angaben auch im Admin-Backend belassen können - aber dann wäre es ja noch umfangreicher gewesen, da man alles Sprachabhängig hätte eingeben müssen.

Smarty-Plugin: template_include

Es wurde ein Smarty-Plugin realisiert um innerhalb eines Templates leicht ein weiteres Email-Template einzulesen. Dies kann z.B. genutzt werden um eine Signatur einzufügen. Der Code im Template dazu sieht wie folgt aus:

{template_include file="signature.txt"}

Gesucht wird die Datei signature.txt dann in den folgenden Verzeichnissen, wobei er, wenn er eine Datei gefunden hat, aufhört zu suchen:

  • templates/DeineVorlage/mail/Sprache/
  • templates/DeineVorlage/mail/
  • templates/_core/mail/Sprache/
  • templates/_core/mail/

Es sind also sowohl sprachabhängige als auch -unabhängige Vorlagen möglich.

Kopfzeilen der Text-Datei

SUBJECT
Die Angabe vom SUBJECT ist zwingend vorgeschrieben, alle anderen Angaben sind optional.
TO optional
Angabe des Empfängers der EMail. Kann mehrfach angegeben werden wenn die EMail an mehrere Empfänger gehen soll.
Default-Werte
Die Default-Werte wurden beim Aufruf der mail_template Klasse übergeben.
Wenn ein TO angegeben wird wird der Default-Wert überschrieben. Wenn zusätzlich die EMail erhalten soll so ist er erneut als "TO:" anzugeben.
FROM optional
Angabe des Absenders den der Empfänger der Email sieht.
Default-Werte
Klartext-Name: ShopName
<email-adresse> Wert von Konfiguration/Mein-Shop/Email_von
REPLY optional
Optionale Angabe des Antwort-Empfängers (Reply-To). Die Angabe dieses Wertes ist sinnvoll wenn der Server Emails nur über einen bestimmten account verschicken kann, Kundenantworten zu diesem Thema aber in einer anderen InBox landen sollen.
Der Klartext-Name muß in Anführungszeichen stehen, die EMail eingeschlossen in spitzen Klammern
Beispiel: REPLY "John Doe" <john.doe@demo.webs.de>
CC optional
Angabe von Email-Empfängern die diese Email immer als Kopie erhalten sollen.
Format & Beispiel entsprechend REPLY
BCC optional
Angabe von Email-Empfängern die diese Email immer als Blindkopie erhalten sollen.
Format & Beispiel entsprechend REPLY
ATTACHMENT optional
Angabe von Dateien die mit der Email verschickt werden sollen, z.B. PDF-Dokumente o.ä.
Die Datei wird nacheinander in den folgenden Vereichnissen gesucht - die zuerst gefundene wird benutzt:
templates/DeineVorlage/mail/Sprache/attachment
templates/DeineVorlage/mail/attachment
templates/_core/mail/Sprache/attachment
templates/_core/mail/attachment

Bilder in der HTML-Datei

Es gibt zwei unterschiedliche Möglichkeiten Bilder in einer HTML-EMail zu integerieren:

eingebettete Bilder
Die Bilder werden mit der Email verschickt und Angezeigt
Vorteile
Kein nachladen des Bildes von einer externen URL
Nachteile
Bei großen/vielen Bildern wird die Email schnell recht groß
Manche SPAM-Filter erhöhen dadurch das Ranking, da auch Werbung über solche Bilderchen verschickt wird.
Angabe im Tempalte:
<img src="templates/deinTemplate/pfad/zur/Bilddatei" alt="" />
externe Referenz
Die Bilder werden von einem Webserver nachgeladen.
Vorteile
Die verschicke Email ist kleiner
SPAM-Filter sind da nicht so aggressiv gegen
Nachteile
Der User muss beim Aufruf der EMail auf das nachladen der Bildinformationen warten.
Manche User erlauben das nachladen von Bildern bei HTML-Emails nicht.
Angabe im Tempalte:
<img src="http://example.com/templates/deinTemplate/pfad/zur/Bilddatei" alt="" />

Vorlagen Funktion: template_include

Über die Vorlagen Funktion template_include kann man die benötigte Datei ermitteln, hierbei wird in den folgenden Verzeichnissen gesucht:

templates/DeineVorlage/mail/Sprache
templates/DeineVorlage/mail
templates/_core/mail/Sprache
templates/_core/mail/

Alle EMail Vorlagen benutzen in der HTML-Variante das logo.png welches eingebettet verschickt wird. Hierfür befindet sich in den *.tpl Dateien folgender Code:

<img src="{template_include file="logo.png" fetch=false} alt="Logo" />

Der Parameter fetch=false bewirkt dabei das lediglich der Pfad zum Bild ermittelt und zurückgegeben wird. Da hier kein http:// vorgestellt wurde wird dieses Bild mit der Email verschickt.

Möchtest Du nun das Logo ändern so speichere Dein Logo unter /templates/DeineVorlage/mail/logo.png. Wenn Du ein Logo benutzt welches sprachabhängige Informationen beinhaltet, so speichere es im entsprechenden Sprachverzeichnis /templates/deineVorlage/mail/Sprache/logo.png

Verzeichnisstruktur

templates/_core/mail
sprachunabhängig Vorlagen
templates/_core/mail/attachment
sprachunabhängige Anhänge & Bilder
templates/_core/mail/Sprache
Emails in der jeweiligen Sprache
templates/_core/mail/Sprache/attachment
sprachabhängige Anhänge & Bilder

Backend - Newsletter

Über die Verwaltungsoberfläche hat man die Möglichkeit, Emails direkt an die Kunden zu schicken. Entweder an einzelne Kunden, eine Kundengruppe oder an die Empfänger des Infobriefs. Bisher war es hier nicht möglich die Kunden Individuell anzusprechen, da der Text nicht weiter "verarbeitet" wurde. Durch die Umstellung auf Smarty EMail Vorlagen gibt es nun auch hier die Möglichkeit die Kunden individuell anzuprechen. Hierfür kann man auf die entsprechenden Smarty Variablen zugreifen: - customer.gender - customer.firstname - customer.lastname - customer.email

Eine persönliche Anrede könnte somit wie folgt codiert werden:

Sehr geehrte{if $customer.gender=='m'}r Herr{else} Frau{/if} {$customer.lastname}

Bei der Vorschau des Newsletter sieht man die Text-Version der Nachricht, also ohne Formatierungen!

Hinweis zum Update

Die Email-Templates befinden sich in dem folgenden Verzeichnis:

  • templates/*/admin/mail/sprache/

Der Update-Prozess wird die neuen Email-Templates im templates/_core Verzeichnis installieren und versuchen die vorhandenen Email-Templates in das entsprechende Template-Verzeichnis zu verschieben.

gelöschte Konstanten

Wenn Du eigene Erweiterungen implementiert hast, so prüfe daß nicht eine der folgenden Konstanten verwendet wurde:

  • EMAIL_EMBED_IMAGES
  • CONTACT_US_EMAIL_ADDRESS
  • CONTACT_US_EMAIL_SUBJECT
  • EMAIL_SUPPORT_ADDRESS
  • EMAIL_SUPPORT_NAME
  • EMAIL_SUPPORT_REPLY_ADDRESS
  • EMAIL_SUPPORT_REPLY_ADDRESS_NAME
  • EMAIL_SUPPORT_SUBJECT
  • EMAIL_SUPPORT_FORWARDING_STRING
  • EMAIL_BILLING_ADDRESS
  • EMAIL_BILLING_NAME
  • EMAIL_BILLING_REPLY_ADDRESS
  • EMAIL_BILLING_REPLY_ADDRESS_NAME
  • EMAIL_BILLING_SUBJECT
  • EMAIL_BILLING_FORWARDING_STRING
  • EMAIL_BILLING_SUBJECT_ORDER

Noch offen

  • Ob eine Modifikation des Templates stattfindet steht noch nicht fest.


Weitere HowTo's...