Plugins:mmdb emailSender
Aus Melin WebHelp
Versendet Emails über einen frei wählbaren SMTP-Server. Alle Mails die über Melin verschickt werden nutzen dieses Plug-In.
Der Inhalt der Mails kann empfängerabhängig ergänzt werden, hierzu startet das Plug-In vor jedem Versand pro Empfänger eine Abfrage bei der SQL-Datenbank und stellt alle zurückgelieferten Felder als Variablen bereit.
Parameter Name Beschreibung die im Grid erscheint
Parameter SMTP-Server IP-Nummer bezw. Hostname des Servers über den der Versand erfolgen soll.
Parameter Content Special Encoding mit diesem Parameter werden alle Klartext-Umlaute in der Mail als HTML-Entitäten codiert (aus ä wird ä)
Hinweis: zusätzlich zu den Parametern über die Oberfläche kann das Email-Sender-Plug-In über eine ganze Reihe weiterer Felder im Hash des Datenobjekts gesteuert werden. Die Felder werden im folgenden Beschrieben. Wenn das Versandtemplate zur Personalisierung die Themenkanal-Abodaten eines Benutzers benötigt ist das Feld M_CHECK_CHANNEL = 1 im Hash zu setzen. Aus Performancegründen ist die Funktion standardmäßig deaktiviert (weitere Informationen zu Channeln auf den Folgeseiten).
[bearbeiten] Die Felder im Daten-Hash
Über das Grid werden nur die Verbindungsparameter zum SMTP-Server festgelegt, die restlichen Informationen werden durch das Datenobjekt definiert. Vorteil dieser Aufteilung ist eine maximale Flexibilität, da ein Datenobjekt so selbst einen großteil der Quellen wählen kann.
Die Verbindung zur Datenbank wird durch drei Felder festgelegt (jeweils im Hash):
- MMDB_DRIVER Verbindungs-String und Datenbank-Auswahl, zum Beispiel für die Datenbank "melin_test" auf dem localhost:
"jdbc:mysql/localhost/melin_test"
In der Datenbank muß eine Tabelle "subscriber" existieren die mindestens ein Feld "EMAIL" beinhaltet. Pro Empfänger liest Melin alle Felder zu der jeweligen Emailadresse aus und stellt diese als Variablen bereit.
- MMDB _LOGIN Optional: das Login für die Datenbank
- MMDB _PW Optional: das Passwort für die Datenbank
Der Email-Sender verschickt Emails über einen definierbaren SMTP-Server an eine Liste von Empfängern (die sich im LISTE-Block des Datenobjekts befinden). Als Vorlage dient der Code im CodeArray des Datenobjekts oder ein Template das durch das das Hash-Feld M_TEMPLATE definiert wird.
- SUBJECT Betreffzeile der Mail, z.B.
"Hallo Welt Beispiel"
- FROM Email des Absenders, z.B. "mailer@iforp.com"
- M_SENDER Klartextname des Absenders
- M_RECEIVER Empfänger der Mail (in diesem Beispiel wird der Empfänger fest codiert, normalerweise übernimmt man die Daten aus der Abonnentendatenbank), z.B.
"seb@imperia.net"
- M_TEMPLATE Optional, wenn CodeArray leer ist: Template das als Vorlage zum Mailversand dient, z.B. "SITE-DIR/template.txt"
- M_CHARSET Definiert den Zeichensatz mit dem eine Mail verschickt werden soll. Defaultwert ist ISO-8859-1, andere sinnvolle Werte können sein UTF-8 oder US-ASCII.
- M_TEMPLATE gibt den vollständigen Pfad zum Template auf dem Server an (SITE-DIR bezw. DOCUMENT-ROOT können zur Vereinfachung verwendet werden). Wenn das Feld M_TEMPLATE definiert ist geniesst es eine höhere Priorität als der Inhalt des CODE-Arrays.
[bearbeiten] Templates und die Template-Sprache
Das endgültige Aussehen der generierten Emails legt das Template fest. Im Prinzip ist ein Template ine Text oder HTML-Vorlage mit Platzhaltern die durch die Werte im Datenobjekt ersetzt werden. Betrachten wir ein Komplexes Template das fast alle verfügbaren Kombinationen enthält:
NEWSLETTER - www.melin.de KONTAKTER - Der internationale Nachrichtendienst der Email Marketing Welt vom $df[DAY].$df[MON].$df[YEAR] gesendet um $df[HOUR]:$df[MIN] Uhr an $UD[EMAIL]
Dieser Newsletter wurde an %USERCOUNT% Newsletterabonnenten verschickt.
%EINLEITUNG_TEXT%
Die wichtigsten Meldungen aus den Bereichen:
Email Management - Email Marketing - Content Management
#IF (%adkopf@x02% eq "true") ----------------------------------------------------------------- Anzeige: %kopf@x02% #ENDIF ----------------------------------------------------------------- < MARKETING > %MARKETING_TITLE% %MARKETING_REFURL% %MARKETING_TEXT% #IF (%admt@x02% eq "true") ---------------------------------------------------------------- Anzeige: %mt@x02% ----------------------------------------------------------------- #ENDIF #LOOP[i][MARKETING_TEXT][1] %MARKETING_TITLE#i% %MARKETING_REFURL#i%
%MARKETING_TEXT#i]% #ENDLOOP
Wie man sieht beinhaltet ein Template eine Vielzahl unterschiedlicher Platzhalter und Logik-Elemente.
- Mit %SUBJECT% kann zum Beispiel der Wert des Hash-Feld "SUBJECT" des aktuellen Datenobjekts eingefügt werden.
[bearbeiten] Datum und Uhrzeit
Es ist möglich in der versendeten Mail Datum und Uhrzeit einzubauen. Zu diesem Zweck existiert das folgende TagSet:
$DF[day] Tag (1..31) $DF[mon] Monat (1..12) $DF[year] Jahr (YYYY, 2000..2078) $DF[hour] Stunde (00-23) $DF[min] Minute (00-59) $DF[sec] Sekunde (00-59) $DF[wday] Wochentag (0..6, 0 = Sonntag) $DF[week] Kalenderwoche(1..52)
Die Werte entsprechen der Zeit, an der die Mail versendet wird. Zudem gibt es noch zwei Klartextparameter.
- $DF[DE-wday] Wochentag im Klartext (Sonntag...Samstag)
- $DF[DE-mon] Monat im Klartext (Januar...Dezember)
Auf alle Werte im Hash kann mit %KEY% zugegrifen werden, wobei KEY für den Bezeichner des Hashfelds steht.
[bearbeiten] IF-Abfragen
Im Template können dazu IF-Abfragen verwendet werden. Ein einfaches Beispiel ist
#IF (%SUBJECT% eq "hallo") Das Feld SUBJECT hat den Wert hallo. #ENDIF
Die IF-Abfragen sind sehr leistungsfähig. Zum Beispiel ist auch eine Konstruktion wie
#IF ($DF[MON] eq 12 AND $DF[DAY] > 20)
Merry Xmas and a Happy New Year!
#ENDIF
möglich. Eine genaue Definition findet sich im Dokument "Der Lexer/Template Parser" auf der Melin Homepage www.melin.de
[bearbeiten] LOOPS
LOOPS werden benötigt um eine vorher nicht bekannte Anzahl von Content-Blöcken in einem Template zu kombinieren. Ein Beispiel-Template-Ausschnitt:
These are our proposals:
#LOOP[I][AUX#I] #I) %PROPOSAL#I%: #ENDLOOP
Angenommen, das Datenobjekt hat folgenden Hashcode:
<AUX0>true</AUX0> <AUX1>true</AUX1> <AUX2>true</AUX2> <PROPOSAL0>Cost reduction</PROPOSAL0> <PROPOSAL1>Efficiency</PROPOSAL1> <PROPOSAL2>Synergies</PROPOSAL2> <PROPOSAL3>XML</PROPOSAL3> <PROPOSAL4>Java</PROPOSAL4> <DESCRIPTION0>Try to pay less for more!</DESCRIPTION0> <DESCRIPTION1>Work harder and take less holidays!</DESCRIPTION1> <DESCRIPTION2>Use buzz words whenever possible!</DESCRIPTION2> <DESCRIPTION3>Disguise your mistakes inside this fabulous language!</DESCRIPTION3>
Dann wird die Email zu:
These are our proposals:
0) Cost reduction: Try to pay less for more!
1) Efficiency: Work harder and take less holidays!
2) Synergies: Use buzz words whenever possible!
[bearbeiten] Der Content-Typ, Text, Plain und Multipart
Je nach Template sind die Mails vom Typ text/plain oder text/html. Die Erkennung erfolgt automatisch (durch Inhaltsabschätzung). Wenn das Feld M_CONTENTYPE gesetzt ist, wird der Versand mit dem definierten Wert erfolgen. Ist das Feld nicht gesetzt wird der Typ autmatisch bestimmt.
Es können Attachements an die versendeten Mails angehängt werden. Sie werden durch ein Hashfeld, das mit M_ATTACHEMENT beginnt definiert. Z.B.: M_ATTACHEMENT415, VALUE: /melina/handbuch/installation.doc. Der Pfad zur angebenen Datei ist relativ zum DOCUMENT-ROOT.
Wenn eine HTML-Seite geschickt wird werden alle Grafiken mitgeschickt die zum korrekten Anzeigen der Seite notwendig sind (Inline images). Es wird davon ausgegangen, daß alle Grafik-URLS im Template absolut vom DOCUMENT-ROOT der Melin-Installation angegeben sind.
[bearbeiten] Beispiel
Im folgenden wird ein Workflow vorgstellt der sich original so im Einsaz befindet:
Man stelle sich nun ein Datenobjekt vor das diesen Workflow durchläuft:
Die Daten werden aus einem verbreiteten Content Management System übernommen, über den XML-Reader eingelesen und aus einer Datenbank eine lange Liste von Emailadressen eingelesen (mit SQLDB_getEmails - nicht im Bild). Nun beginnt der sichtbare Workflow:
Das Feld SUBJECT im Datenhash des Objekts wird gesetzt, die Betreffzeile der Mail. Meistens kopiert man ein bereits existierendes Feld (z.B. TITEL, HEADER) um in das SUBJECT-Feld, auf diese Weise kann der Titel des Mailings in der externen Applikation gesetzt werden.
Im nächsten Schritt werden drei weitere Felder im Datenobjekt gesetzt (M_SQL_DRIVER, M_SQL_LOGIN, M_SQL_PW) die wichtig sind um beim Versand auf eine Datenbannk zugreifen zu können die erweiterten Daten der Empfänger enthält.
Das Feld FROM definiert die Absender-Emailadresse.
Anschließend werden aus einer Tabelle die Liste der gesperrten Emailadresssen ausgelesen und die vorhandene Empfängerliste gekürzt (Robinson-Funktion, Plug-In mit dem Namen DropDouble).
Im nächsten Schritt wird das Datenobjekt geklont, es existieren nun also zwei identische Datensätze die jewelils über die komplette Liste der Empfänger außer den Robinson-Adressen verfügen.
Die folgenden Filter entfernen jeweils die Adressen die nicht der definierten Regel genügen (hat im Feld MAILTYP ein HTML, hat im Feld MAILTYP den String TEXT, das Feld MAILTYP kann auch beliebig anders heissen, je nachdem ob sie das Feld überhaupt in Ihrer Datenbank haben und die Information beim registrieren des Abonnenten abgefragt haben). Die geteilten Datenpakete enthalten nun je eine Teilmenge der ursrpünglichen Empfänger.
Im oberen Zweig sind die Abonnenten die den HTML-Newsletter bekommen, im unteren diejenigen die die TEXT-Variante erhalten.
Nun werden die Objekte wieder geklont und erneut gefiltert. Nach diesem Schritt enthält je ein Datensatz die Emfpänger für einen ausführlichen Newsletter, die anderen erhalten eine LIGHT-Version.
Im vorletzen Schritt wird mit dem CodeReader jeweils ein anderes Versand-Template eingelesen (HTML oder TEXT, Voll oder Light).
Es gibt in obigem Beispiel vor dem Versand also vier Datenobjekte die jeweils eine eigene Empfängerliste beinhalten, einen eigenen Template-Code mit sich tragen und im Hash über eine Reihe von Parametern verfügen, u.a. die Information aus welcher Datenbank die Personalisierungsinformationen kommen.
Jetzt kann der Versand beginnen.
[bearbeiten] Themenkanäle (Channel)
Eine weitere Besonderheit sind Themenkanäle bezw. Channel. Jeder Abonnent kann zu einem Newsletter eine beliebige Menge an Themenkanälen abonnieren. Diese werden in der Tabelle SUBSCRIPTION_CHANNEL abgelegt (s. mmdb_adduser) und können wie die sonstigen Personalisierungsdaten mit $UD[KEY] benutzt werden. Der Unterschied ist, daß Channel abhängig von Newsletter sind, die sonstigen Personalisierungsdaten global.
Betrachten wir folgenden Auszug aus einer SUBSCRIPTION_CHANNEL:
Geht nun eine Mail an den Newsletter 999 an den Abonnenten 2080950 so stehen folgende Werte im Template zur Verfügung
$UD[RECHT] = 1 $UD[PERSONALFUEHRUNG] = 1 etc...
man kann also zum Beispiel mit
#IF ($UD[RECHT] eq "1") hier die Informationen für die, die den Themenkanal RECHT abonniert haben #ENDIF
Pausieren und Abbrechen von Mailings
Wenn der Versand eines Mailings mit dem ActionLogger erfasst wird und es daher im Hash das automatisch gesetzte Feld M_ACTIONLOGGER_ID gibt so kann ein laufendes Mailings sowohl angehalten (pausiert) als auch abgebrochen werden.
Über die Oberfläche erreicht man dies durch klicken der entsprechenden Buttons im Menü "Aktive Prozesse". Alternativ kann dies auch erreicht werden indem man die folgenden Dateien erzeugt:
Zum Pausieren (der Versand stoppt solange die folgende Datei existiert): /msite/demon/logs/transfer/M_ACTIONLOGGER_ID.sleep
Zum Abbrechen (der Versand wird sofort abgebrochen): /msite/demon/logs/transfer/M_ACTIONLOGGER_ID.abort
Die Variable M_ACTIONLOGGER_ID muss hierbei durch den Wert der Variablen M_ACTIONLOGGER_ID ersetzt werden.
[bearbeiten] Parameter Special Encoding
Special Encoding - erwzingt Umlaute als HTML und verbessert die Darstellung und Verarbeitung von Quelldaten mit unsauberer Codierung. Diese Option sollte nur angehakt werden wenn es Probleme mit der Umlaute-Codierung gibt. Im Mailing werden Umlaute dann durch HTML-Eintitäten ersetzt (aus ä wird ä), bei der Personalisierung im Betreff wird aus "Herr Möller" ein "Herr Moeller". Die Option sollte nur verwendet werden wenn ausschließlich HTML-Mailing verwendet werden und die Datenbasis nicht sauber auf ISO-8859-1 oder UTF-8 gebracht werden kann.
[bearbeiten] Spezielle Hashfelder
[bearbeiten] M_RECEIVER
Definiert eine Emailadresse die in jedem Fall ein Mail erhält, unabhängig vom Inhalte der Empfängerliste. Auf diese Weise kann das PlugIn auch zum versenden an nur eine Adresse verwendet werden.
[bearbeiten] M_SUBJECT (SUBJECT)
Die Betreffzeile der Mail. Das Feld M_SUBJECT oder SUBJECT (je nach verfügbarkeit) wird gesetzt. Endet der Inhalt mi einem Komma und ist der Name und die Anrede des Empfängers bekannt, so wird die Anrede ergänzt.
[bearbeiten] M_TEMPLATE
Gibt eine Datei vor die als Versandtemplate genutzt werden soll. Der Pfad muss absolut sein oder z.B. SITE-DIR begonnen werden. Ist das Template kürzer als 6 Zeilen und beinhaltet einen der Platzhalter "BODY", "X_BODY", "PLAINTEXTBODY", "HTMLBODY", "TEXTBODY", "TEXT_REPRESENTATION" wird der Inhalt zweimal geparst, d.h. es werden auch IF-Abfragen in den Platzhaltern beachtet (z.B. wenn der komplette Templatecode in X_BODY übergeben wird).
[bearbeiten] M_EMAILSENDER_SKIP_PROCESSOR
Setzen auf einen Wert überspringt den Template-Parser. Die Zeit zum Aufbereiten eines einzelnen Mails wird dadurch signinfikant verkürzt, die Versandleistung erhöht, jedoch steht u.a. keine Personalisierung und keine IF-Abfragen mehr zur Verfügung.
[bearbeiten] M_EMAILSENDER_SKIP_META
Überspringt die Suche nach zusätzlichen Hash-Daten die als <META..>-Tags im Template-Code übergeben werden können. Reduziert etwas die Rechenzeit die zur Aufbereitung der Mails benötigt wurd und erhöht damit die Versandleistung.
[bearbeiten] M_EMAILSENDER_SKIPPARSE
Überspringt UTF-8/ISO-Konvertierungen (Wenn das Feld nicht gesetzt ist werden UTF-8-zeichen sofern möglich in ihre ISO-Äquivalente umgwewandelt) Beispiel für eine Umwandlung: (char) 195 + (char) 131 + "\\&\\#150;" -> (char) 214
[bearbeiten] M_EMAILSENDER_COMPACTSELECT
Holt nur die Felder EMAIL,SYSTEM_CUSTOMER_ID,LAST_NAME,FIRST_NAME und ANREDE aus der Datenbank.
[bearbeiten] M_ENVELOPE_FROM (ReplyTo)
das ReplyTo-Feld setzt man mit einem SetHashField "M_ENVELOPE_FROM".
Ich setze da immer etwas wie das hier: melin+N%NEWSLETTER_ID%-ID%MAILING_ID%-C0-S%SYSTEM_CUSTOMER_ID%@melin.de
Mein Pop3-Postfach heisst dabei melin@melin.de , da der POP3-Server alles hinter dem + jedoch ignoriert kommt die Mail immer richtig im Postfach an. ANschließend kann das Melin BounceManagement da jedoch raussuchen zu welchen Mailing die Bounce gehört.
[bearbeiten] M_CHECK_CHANNEL
Aktiviert daß auch Themenkanäle gezogen werden und im Hash zur Verfügung stehen. Abonnierte Themenkanäle stehen im Hash mit einer 1, z.B. RECHT = 1
[bearbeiten] M_LINK_REDIRECT
[bearbeiten] M_LINK_COMPRESS
[bearbeiten] _M_REPLACE
[bearbeiten] M_XMAILER
[bearbeiten] M_IS_MULTIPART
Dieser Wert ist auf 1 zu setzen wenn das Mailing als Multipart verschickt werden soll.
[bearbeiten] M_CUSTOM_SCDB / M_CUSTOM_SCDB_SELECT
Das MMDB Emailsender Plug-In kann auch eingesetzt werden wenn die Abonnenten-Detaildaten aus einer externen Datenbank geholt werden sollen, ansonsten jedoch sämtliche Daten in der MMDB gehalten werden sollen. Beispiele hierfür sind alle Portale die bereits über eine vorhandene Abonnentendatenbank verfügen.
[bearbeiten] Mit NanoCMS Templates
Die Einbindung einer externen Datenbank im NanoCMS ist recht einfach. Mit den folgenden HIDDEN-Feldern bindet man die externe Datenbank ein:
<INPUT NAME="MELIN:M_CUSTOM_SCDB" VALUE="1" TYPE=HIDDEN> <INPUT NAME="MELIN:M_SQL_EMAILCOLUMN2" VALUE="EMAIL" TYPE=HIDDEN> <INPUT NAME="MELIN:M_SQL_LOGIN2" VALUE="root" TYPE=HIDDEN> <INPUT NAME="MELIN:M_SQL_PW2" VALUE="" TYPE=HIDDEN> <INPUT NAME="MELIN:M_SQL_SUBSCRIBERTABLE2" VALUE="bs_reservations" TYPE=HIDDEN> <INPUT NAME="MELIN:M_SQL_CLASS2" VALUE="com.mysql.jdbc.Driver" TYPE=HIDDEN> <INPUT NAME="MELIN:M_SQL_DRIVER2" VALUE="jdbc:mysql://localhost/stock_hotel" TYPE=HIDDEN>
Im selben Template kann man nun auf alle Spalten der externen Datenbank zugreifen, in diesem Fall zum Beispiel:
Email: $UD[EMAIL]
Phone: $UD[phone]
Comments: $UD[comments]
Im NanoCMS selbst sieht man die Werte noch nicht, erst wenn die Mail verschickt wird werden die Platzhalter befüllt. Das funktioniert auch schon bei einer Vorschau. Wichtig bei der Vorschau ist daß die Adresse an die die Vorschau geschickt wird auch in der externen Datenbank enthalten ist.
[bearbeiten] Steuerung im Workflow
Im ersten Schritt muss diese Datenbank unter "Voreinstellungen" / "Zusatzdatenbanken" angemeldet werden (aktivieren nicht vergessen!). Benötigt werden die Zugangsdaten, die Datenbank sowie die Tabelle und Spalte in der die Emailadresse gefunden werden kann.
Anschließend setzt man im Workflow ein SQLPreset-Plugin und wählt darin die neue Zusatzdatenbank aus.
Wichtig ist die Checkbox "Use as secondary db" zu aktivieren, damit nicht alle PlugIns im Folgeworkflow mit dieser Datenbank arbeiten. Direkt im Anschluß setzt man mit einen SetHashField das SQL-Statement mit dem die Personalisierungdaten gezogen werden können (im Hash-Feld M_CUSTOM_SCDB_SELECT):
M_CUSTOM_SCDB_SELECT SELECT name as LAST_NAME, vorname as FIRST_NAME, salutation as ANREDE, email as EMAIL FROM portal_user
Hilfreich ist hierbei, wenn das Statement die Standard-Melin-Variablen zurückgibt, jedoch nicht zwingend erforderlich, es sei den es werden Sonderfunktionen wie die Anrede im Betreff verwendet. Die Schlüssel werden dabei von Melin immer in Großbuchstaben konvertiert. Im Template kann man mit $UD[SCHLÜSSEL] auf alle Werte zugreifen die das Statement zurückliefert.
[bearbeiten] M_ADDITIONAL_HEADER_KEY
Es können bis zu 5 beliebige weitere Headerfelder hinzugefügt werden indem man die Hashfelder-Paare M_ADDITIONAL_HEADER_KEY1 und M_ADDITIONAL_HEADER_VAL1 bis M_ADDITIONAL_HEADER_KEY5 und M_ADDITIONAL_HEADER_VAL5 setzt. Beispiel:
M_ADDITIONAL_HEADER_KEY1 : Error-To M_ADDITIONAL_HEADER_VAL1 : errorhandler@melin.de
[bearbeiten] M_TRANSFER_ENCODING
[bearbeiten] M_CHARSET
[bearbeiten] M_CONTENTTYPE
[bearbeiten] M_FORCE_MULTIPART_FALSE
[bearbeiten] M_NO_INLINE
Bilder werden niemals in der Mail mitgeschickt, auch wenn sie nur relativ verlinkt sind.
[bearbeiten] M_DECODE_UTF8
[bearbeiten] M_SKIPMAILS
Überspringt den Versand der ersten n Mails der Empfängerliste. Wenn ein Versand abgebrochen wird und wiederaufgenommen werden soll, oder wenn aus anderen Gründen der Versand ab einem bestimmten Abonnent begonnen werden soll, so kann mit M_SKIPMAILS eine Zahl gesetzt werden bis zu der der Versand ausgesetzt werden soll. Dieser Weg ist einfach, zur Beschränkung der Liste empfiehlt sich jedoch ansonsten beim getEmails PlugIn anzusetzen und hier zu filtern (z.B. mit LIMIT 5000,100000)
[bearbeiten] M_SILENT
Unterdrückt den Versand von Mails.
[bearbeiten] USE_SQL_ROBINSON
Aktiviert die Verwendung einer Robinson-Sperrlistendatenbank vor Versand. Die Datenbank wird unter "Bounce Mails" / "Robinsoliste" / "Einstellungen" konfiguriert.
[bearbeiten] M_SKIP_LOG_SENDMAIL
In der Standardeinstellung wird nach jeder Mail ein Eintrag in der Tabelle LOG_SENDMAIL angelegt.
[bearbeiten] M_CUSTOMFX_VNR
Dieser Parameter aktiviert die Sonderbehandlung der Betrefzeile (M_SUBJECT). Aktiviert man diese Option, so werden Sonderbarkeiten die durch das automatische Ersetzen im Word generiert werden herausgefiltert (z.B. – - der lange Gedankenstrich der außerhalb der Outlook-Welt immer missinterpretiert wird). Diese Option deaktiviert die Möglichkeit, die Anrede im Betreff zu verwenden.
[bearbeiten] Anrede im Betreff
Wenn die Userdaten ANREDE und LAST_NAME zu einem Abonnenten vorliegen generiert das EmailSender-PlugIn einen Sonderstring für die Anrede - z.B. "Herr XY". Dieser kann im Betreff verwendet werden, wenn die Betreffzeile (definiert durch M_SUBJECT) mit einem Komma endet.