MailPublisher (Objekt)
Dieser Artikel bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf bitte mit ihn zu verbessern und entferne anschließend diese Markierung. |
Name
MailPublisher - Publiziert Artikel, Resourcen und Medien als E-Mail
Beschreibung
Ein MailPublisher publiziert Artikel, Resourcen und Medien als E-Mail. Dazu muss das Ausgabe-Template in einer XML-Struktur die Daten für die E-Mail beschreiben.
Begonnen wird eine Mail-Publisher Definition mit <mail-publishing>
Sollen mehrere Mails verschickt werden
und enthalten diese Mails identische Bereiche können sie unterhalb von <mail-publishing>
mit
<bodypart-ref>
definiert werden.
<bodypart-ref id="myplain">Reine Text Mail</bodypart-ref>
Um HTML im bodypart zu definieren muß der Text zunächst in eine Variable gespeichert werden, damit sie über sp:print xml-encodet werden kann.
<sp:set name="htmlvaue">
<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
<html>
Eine <b>HTML</b> Mail!
Ein Image-Attachment kann über die Content-ID referenziert werden:<br>
<img src="cid:myimage">
</html>
</sp:set>
<bodypart-ref id="myhtml" content-type="text/html; charset=us-ascii">
<sp:print name="htmlvalue" encoding="xml"/>
</bodypart-ref>
Für Datei Attachments muß mit dem file-Attribute die Binary-ID des Mediums angegeben werden. Über die ID kann auch innerhalb von HTML auf die Attachments zugegriffen werden (<img src="cid:myimage">
)
<bodypart-ref
id="myimage"
disposition="inline"
file="<sp:print name="!{myimage}.media.binary"/>"/>
Optional kann für ein Attachment auch der Dateiname explizit angegeben werden (Für Attachements muss sub-type="mixed"
im <body>
angegeben werden).
<bodypart-ref
id="myimage"
disposition="attachment"
file="<sp:print name="!{myimage}.media.binary"/>"
filename="<sp:print name="!{myimage}.media.originalFilename"/>"/>
Die einzelnen Body-Parts können auch verschachtelt werden. Bei Verschachtelungen kann noch ein sub-type angegeben werden. Gültige Werte sind 'mixed' und 'alternative'
<body-part-ref id="subpart" sub-type="alternative">
<body-part-ref>Teil mit dem ersten Text</body-part-ref>
<body-part-ref>Teil mit dem zweiten Text</body-part-ref>
</body-part-ref>
Nach dem die Body-Part definiert sind die für alle Mails identisch sind, werden auch unterhalb von <mail-publishing> die Mails mit <mail> definiert.
<mail>
Unterhalb von <mail> können Mail-Header angegeben werden
<header name="Reply-To">zumir@zu.hause.de</header>
Unterhalb von <mail> können Properties definiert werden, die in den Body-Parts ersetzt werden
<property name="var1">ein Text</property>
Kommt in den Body-Parts die Zeichenkette ${var1} vor wird diese durch 'ein Text' ersetzt. Unterhalb von <mail> wird die From-Addresse Angegeben
<from personal="Peter Pan" address="peter.pan@nimmerland.net"/>
Unterhalb von <mail werden die To, CC und BCC Adressen angegeben
<to personal="Heinz Müller" address="hm@domain.com"/>
<cc personal="Peter Lustig" address="peter.lustig@loewenzahl.de"/>
<bcc personal="Nich Lustig" address="info@nl.de"/>
Unterhalb von <mail> wird anschließend der Body mit <body> definiert.
<body>
Body kann optional einen sub-type enthalten. Gültige Werte sind 'mixed' und 'alternative'
<body sub-type="alternative">
Für einfache Mail's kann hier direkt der Body-Text eingetragen werden.
<body content-type="text/html">
<sp:print name="htmlvalue" encoding="xml"/>
</body>
Es kann auch eine bodypart-ref verwendet werden
<body ref="myhtml"/>
Für Mehrteilige Mails werden unterhalb von <body> die einzelnen <body-part>'s angegeben
<body sub-type="alternative">
<bodypart ref="myplain"/>
<bodypart ref="myhtml"/>
<bodypart ref="myimage"/>
</body>
Die Mail kann auch noch weiter verschachtelt werden
<body sub-type="alternative">
<bodypart ref="myplain"/>
<bodypart ref="myhtml"/>
<bodypart>
<bodypart ref="myimage1"/>
<bodypart ref="myimage2"/>
</bodypart>
</body>
Der <mail>-Tag kann beliebig (Die Rechner-Resourcen beschränken die Anzahl) wiederholt werden um mehrere Mails zu generieren. Es sollte allerdings darauf geachtet werden, dass nicht unnötig viel Content innerhalb von <mail> steht. Vielmehr sollten die <body-part-ref>-Tags für die Content-Lastigen Teile verwendet werden.
Multipart-Mail Beispiel
<%-----------------%>
<%-- HTML HEADER --%>
<%-----------------%>
<sp:set name="htmlheader" value="
<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
<html>
<head>
<meta content=\"text/html;charset=ISO-8859-15\"
http-equiv=\"Content-Type\"> <title>ein titel</title>
</head>
<body>"/>
<%-----------------%>
<%-- HTML BODY --%>
<%-----------------%>
<sp:set name="htmlbody" value="
<p>
Dies ist eine <b>HTML</b>-Mail<br>
Und ein Bild:<br>
<img src=\"cid:htmlimg\"/>
</p>
"/>
<%-----------------%>
<%-- HTML FOOTER --%>
<%-----------------%>
<sp:set name="htmlfooter" value="
</body>
</html>"/>
<%---------------------%>
<%-- MAIL_PUBLISHING --%>
<%---------------------%>
<mail-publishing>
<bodypart-ref id="plaintext">Hallo ${salutation} ${lastname}
Dies ist eine Plain-Text Mail.
</bodypart-ref>
<bodypart-ref id="htmlheader" content-type="text/html;charset=us-ascii">
<sp:print name="htmlheader" encoding="xml"/></bodypart-ref>
<bodypart-ref id="htmlbody" content-type="text/html;charset=us-ascii">
<sp:print name="htmlbody" encoding="xml"/></bodypart-ref>
<bodypart-ref id="htmlfooter" content-type="text/html;charset=us-ascii">
<sp:print name="htmlfooter" encoding="xml"/></bodypart-ref>
<bodypart-ref id="htmlimg" disposition="inline"
file="<sp:print name="!{traumschiff}.media.binary"/>"/>
<sp:for from="0" to="1" index="i">
<mail>
<header name="aaa">fff</header>
<property name="salutation">Herr</property>
<property name="lastname">Veltrup</property>
<from personal="Holger Veltrüp" address="veltrup@sitepark.com"/>
<to personal="Holger Veltrüp" address="veltrup@sitepark.com"/>
<subject>publishing mail-test (<sp:print name="i"/>)</subject>
<body sub-type="alternative">
<bodypart ref="plaintext"/>
<bodypart ref="htmlheader"/>
<bodypart content-type="text/html">
Hallo ${salutation} ${lastname},
</bodypart>
<bodypart ref="htmlbody"/>
<bodypart ref="htmlfooter"/>
<bodypart ref="htmlimg"/>
</body>
</mail>
</sp:for>
</mail-publishing>
Attribute
Attribut | Type | Beschreibung | ab IES Version |
---|---|---|---|
id | ID | ID des Publishers | 1 |
type | String | Liefert immer mail
|
1 |
anchor | Anchor | Anchor des Publishers | 1 |
name | String | Name des Publishers | 1 |
encoding | String | Encoding das der Publisher verwenden soll (UTF-8 , ISO-8859-15 , ...)
|
1 |
locale | Locale | Die Sprache, die für diesen Publisher verwendet werden soll | 1 |
clients | Collection <Client> | Liste der Mandanten, die Zugriff auf diesen Publisher haben | 1 |
metadata | Map <String,String> | Metadaten eines Publishers | 1 |
metadataString | String | Metadaten eines Publishers als Zeichenkette. Jede Zeile ein Schlüssel/Werte-Paar getrennt mit einem = (gleich) | 1 |
isPublished | Boolean | Liefert im Out-Modus true , wenn der Artikel vom Publisher publiziert wird oder false , wenn der Artikel vom Publisher depubliziert wird
|
1 |