MailPublisher (Objekt)
Aus SiteparkWiki
| Dieser Artikel bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf bitte mit ihn zu verbessern und entferne anschließend diese Markierung. |
Inhaltsverzeichnis |
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 |

