MailPublisher (Objekt): Unterschied zwischen den Versionen

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen
 
(4 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 4: Zeile 4:
  
 
==Beschreibung==
 
==Beschreibung==
Ein MailPublisher publiziert Artikel, Resourcen und Medien als E-Mail. Dazu muß das Ausgabe-Template in einer XML-Struktur die Daten für die E-Mail beschreiben.
+
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 <code><mail-publishing></code> Sollen mehrere Mails verschickt werden
 +
und enthalten diese Mails identische Bereiche können sie unterhalb von <code><mail-publishing></code> mit
 +
<code><bodypart-ref></code> 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.
 +
 
 +
<source lang="xml">
 +
<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>
 +
</source>
 +
 
 +
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 (<code><img src="cid:myimage"></code>)
 +
 
 +
<source lang="xml">
 +
<bodypart-ref
 +
id="myimage"
 +
disposition="inline"
 +
file="<sp:print name="!{myimage}.media.binary"/>"/>
 +
</source>
 +
 
 +
Optional kann für ein Attachment auch der Dateiname explizit angegeben werden (Für Attachements muss <code>sub-type="mixed"</code> im <code><body></code> angegeben werden).
 +
<source lang="xml">
 +
<bodypart-ref
 +
id="myimage"
 +
disposition="attachment"
 +
file="<sp:print name="!{myimage}.media.binary"/>"
 +
filename="<sp:print name="!{myimage}.media.originalFilename"/>"/>
 +
</source>
 +
 
 +
 
 +
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'
 +
 
 +
<source lang="xml">
 +
<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>
 +
</source>
 +
 
 +
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.
 +
 
 +
<source lang="xml">
 +
<mail>
 +
</source>
 +
 
 +
Unterhalb von <mail> können Mail-Header angegeben werden
 +
 
 +
<source lang="xml">
 +
<header name="Reply-To">zumir@zu.hause.de</header>
 +
</source>
 +
 
 +
Unterhalb von <mail> können Properties definiert werden, die in den Body-Parts ersetzt werden
 +
 
 +
<source lang="xml">
 +
<property name="var1">ein Text</property>
 +
</source>
 +
 
 +
Kommt in den Body-Parts die Zeichenkette ${var1} vor wird diese durch 'ein Text' ersetzt. Unterhalb von <mail> wird die From-Addresse Angegeben
 +
 
 +
<source lang="xml">
 +
<from personal="Peter Pan" address="peter.pan@nimmerland.net"/>
 +
</source>
 +
 
 +
Unterhalb von <mail werden die To, CC und BCC Adressen angegeben
 +
 
 +
<source lang="xml">
 +
<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"/>
 +
</source>
 +
 
 +
Unterhalb von <mail> wird anschließend der Body mit <body> definiert.
 +
 
 +
<source lang="xml">
 +
<body>
 +
</source>
 +
 
 +
Body kann optional einen sub-type enthalten. Gültige Werte sind 'mixed' und 'alternative'
 +
 
 +
<source lang="xml">
 +
<body sub-type="alternative">
 +
</source>
 +
 
 +
Für einfache Mail's kann hier direkt der Body-Text eingetragen werden.
 +
 
 +
<source lang="xml">
 +
<body content-type="text/html">
 +
  <sp:print name="htmlvalue" encoding="xml"/>
 +
</body>
 +
</source>
 +
 
 +
Es kann auch eine bodypart-ref verwendet werden
 +
 
 +
<source lang="xml">
 +
<body ref="myhtml"/>
 +
</source>
 +
 
 +
Für Mehrteilige Mails werden unterhalb von <body> die einzelnen <body-part>'s angegeben
 +
 
 +
<source lang="xml">
 +
<body sub-type="alternative">
 +
<bodypart ref="myplain"/>
 +
<bodypart ref="myhtml"/>
 +
<bodypart ref="myimage"/>
 +
</body>
 +
</source>
 +
 
 +
Die Mail kann auch noch weiter verschachtelt werden
 +
 
 +
<source lang="xml">
 +
<body sub-type="alternative">
 +
  <bodypart ref="myplain"/>
 +
  <bodypart ref="myhtml"/>
 +
  <bodypart>
 +
    <bodypart ref="myimage1"/>
 +
    <bodypart ref="myimage2"/>
 +
  </bodypart>
 +
</body>
 +
</source>
 +
 
 +
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===
 +
<source lang="xml">
 +
<%-----------------%>
 +
<%-- 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>
 +
</source>
 +
 
 +
 
  
 
==Attribute==
 
==Attribute==
{| class="prettytable"
+
{| class="prettytable sortable"
 
|- class="hintergrundfarbe1"
 
|- class="hintergrundfarbe1"
 
! Attribut || Type || Beschreibung || ab IES Version
 
! Attribut || Type || Beschreibung || ab IES Version
Zeile 58: Zeile 270:
 
| isPublished
 
| isPublished
 
| [[Boolean]]
 
| [[Boolean]]
| Liefert im [[Template-Modus|Out-Modus]] <code>true</code>, wenn der Artikel vom Publisher publiziert wird oder false, wenn der Artikel vom Publisher depubliziert wird
+
| Liefert im [[Template-Modus|Out-Modus]] <code>true</code>, wenn der Artikel vom Publisher publiziert wird oder <code>false</code>, wenn der Artikel vom Publisher depubliziert wird
 
| 1
 
| 1
 
|}
 
|}
Zeile 65: Zeile 277:
 
<noinclude>
 
<noinclude>
 
[[Category:Objekte]]
 
[[Category:Objekte]]
[[Category:Qualität_der_Sprache_prüfen]]
 
 
[[Category:Qualität_des_Codes_prüfen]]
 
[[Category:Qualität_des_Codes_prüfen]]
 
</noinclude>
 
</noinclude>

Aktuelle Version vom 3. November 2010, 12:13 Uhr

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