E-Mail Footer dynamisch anpasssen
In diesem Tutorial möchten wir Ihnen eine Möglichkeit vorstellen, wie Sie die Gestaltung eines E-Mail Footers abhängig von verschiedenen Eingangsparametern dynamisch verändern können. Dies kann insbesondere dann hilfreich sein, wenn Sie bestimmten Kunden auf Ihre Anfrage hin mit einer individuell formatierten E-Mail nebst Footer antworten wollen.
Zuerst definieren wir, wie üblich, einen Standardfooter in den Eigenschaften der relevanten Mailbox. Ein Beispiel hierzu:
{quote}
--
<div id="saleshint" style="display: none;"></div>
<div>
<pre>
Bergener und Bluma
Dr. Thomas Bergener & Dr. Martin Bluma
https://www.bergener-bluma.de
http:s//www.todo4teams.de
</pre>
</div>
Hierbei ist zu beachten, dass im vorgestellten Beispiel innerhalb des <div> Container-tags nur ein unsichtbares Zeichen im Rahmen des E-Mail Footers als eine Art von Platzhalter für die dynamischen Inhalte dargestellt wird.
Diese unsichtbare Zeichen wollen wir nun dynamisch verändern. Dies geschieht in den Erledigen-Aktion der Gruppe, an die das ursprünglich erzeugte Ticket adressiert wurde.
In u.a. Beispiel soll für die aus den Kreisen von "@firma1.de", "'@unternehmen2.com" und "'@supply.org" stammenden Mailadressen das leere, unsichtbare Zeichen durch den Kommentar "Kabel bitte mitbestellen!" ersetzen, der obendrein rot umrandet sein soll.
Dies geschieht durch folgende Parameter innerhalb der <div> Container-Tags, die
ersetzen sollen:
id="saleshint" style="border: 1px solid red;">Kabel bitte mitbestellen!i
Der gesamte Code innerhalb der Erledigen-Aktion der Gruppe sieht dann wie folgt aus:
try{
var addressee = task.getReplySource().getSourcemailbox().getReplyContainer().getTo();
// task.getReplySource().getSourcemailbox().getReplyContainer().getText()
if(
addressee.indexOf('@firma1.de')>-1
|| addressee.indexOf('@unternehmen2.com')>-1
|| addressee.indexOf('@supply.org')>-1
){
var text = task.getReplySource().getSourcemailbox().getReplyContainer().getText();
text = text.replaceAll("(?s)<div id=\"saleshint\" style=\"display:\\s*none;\">.*?</div>", "<div id=\"saleshint\" style=\"border: 1px solid red;\">Kabel bitte mitbestellen!</div>")
task.getReplySource().getSourcemailbox().getReplyContainer().setText(text);
}
}
catch(e){
println("Error: "+e);
}
Das vorliegende Beispiel kann fast beliebig erweitert werden.
In einem neuen Beispiel wäre ein transparentes Bild mit 1x1 Pixel der Platzhalter im Footer. Das Bild muss hierfür vorab in base64 konvertiert werden. Dies sieht mit dem entsprechenden IMG-Tag nun wie folgt aus:
Eingesetzt in den Standard-Footer ergibt dies Folgendes:
Ihre Nachricht:<br/>
{quote}
--
<div><img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAABhGlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpVIqHawg4pChOlkRFXHUKhShQqgVWnUwuX5Ck4YkxcVRcC04+LFYdXBx1tXBVRAEP0AcnZwUXaTE/yWFFjEeHPfj3b3H3TtAaFSYanaNA6pmGalEXMxkV8XAKwSEEUQ/xmRm6nOSlITn+LqHj693MZ7lfe7P0ZvLmwzwicSzTDcs4g3i6U1L57xPHGElOUd8Tjxq0AWJH7muuPzGueiwwDMjRjo1TxwhFosdrHQwKxkq8RRxNKdqlC9kXM5x3uKsVmqsdU/+wlBeW1nmOs0hJLCIJUgQoaCGMiqwEKNVI8VEivbjHv5Bxy+RSyFXGYwcC6hChez4wf/gd7dmYXLCTQrFge4X2/4YBgK7QLNu29/Htt08AfzPwJXW9lcbwMwn6fW2Fj0CwtvAxXVbU/aAyx1g4EmXDdmR/DSFQgF4P6NvygJ9t0Bwze2ttY/TByBNXSVvgINDYKRI2ese7+7p7O3fM63+fgBZz3KdKcNoPgAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+YCDwoXIvMeUa0AAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAC0lEQVQI12NgAAIAAAUAAeImBZsAAAAASUVORK5CYII=' /></div>
<div>
<pre>
Bergener und Bluma
Dr. Thomas Bergener & Dr. Martin Bluma
https://www.bergener-bluma.de
http:s//www.todo4teams.de
</pre>
</div>
Dynamisch soll nun wieder für Adressen aus den Kreisen "@firma1.de", "'@unternehmen2.com" und "'@supply.org" dieser transparente Platzhalter durch ein 100x100 Pixel großes Bild in schwarz ersetzt werden. Diese Bild nun konvertieren wir vorab in base64:
Und ersetzen innerhalb der Erledigen-Aktion der Gruppe die 1x1 Pixel große transparente Grafik aus dem Standardfooter analog dem o.g. Beispiel:
var addressee = task.getReplySource().getSourcemailbox().getReplyContainer().getTo();
if(
addressee.indexOf('@firma1.de')>-1
|| addressee.indexOf('@unternehmen2.com')>-1
|| addressee.indexOf('@supply.org')>-1
){
var text = task.getReplySource().getSourcemailbox().getReplyContainer().getText();
text = text.replaceAll("(?s)
<div><img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAABhGlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpVIqHawg4pChOlkRFXHUKhShQqgVWnUwuX5Ck4YkxcVRcC04+LFYdXBx1tXBVRAEP0AcnZwUXaTE/yWFFjEeHPfj3b3H3TtAaFSYanaNA6pmGalEXMxkV8XAKwSEEUQ/xmRm6nOSlITn+LqHj693MZ7lfe7P0ZvLmwzwicSzTDcs4g3i6U1L57xPHGElOUd8Tjxq0AWJH7muuPzGueiwwDMjRjo1TxwhFosdrHQwKxkq8RRxNKdqlC9kXM5x3uKsVmqsdU/+wlBeW1nmOs0hJLCIJUgQoaCGMiqwEKNVI8VEivbjHv5Bxy+RSyFXGYwcC6hChez4wf/gd7dmYXLCTQrFge4X2/4YBgK7QLNu29/Htt08AfzPwJXW9lcbwMwn6fW2Fj0CwtvAxXVbU/aAyx1g4EmXDdmR/DSFQgF4P6NvygJ9t0Bwze2ttY/TByBNXSVvgINDYKRI2ese7+7p7O3fM63+fgBZz3KdKcNoPgAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+YCDwoXIvMeUa0AAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAC0lEQVQI12NgAAIAAAUAAeImBZsAAAAASUVORK5CYII=' /></div>",
"<div <img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAABhGlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpVIqHawg4pChOlkRFXHUKhShQqgVWnUwuX5Ck4YkxcVRcC04+LFYdXBx1tXBVRAEP0AcnZwUXaTE/yWFFjEeHPfj3b3H3TtAaFSYanaNA6pmGalEXMxkV8XAKwSEEUQ/xmRm6nOSlITn+LqHj693MZ7lfe7P0ZvLmwzwicSzTDcs4g3i6U1L57xPHGElOUd8Tjxq0AWJH7muuPzGueiwwDMjRjo1TxwhFosdrHQwKxkq8RRxNKdqlC9kXM5x3uKsVmqsdU/+wlBeW1nmOs0hJLCIJUgQoaCGMiqwEKNVI8VEivbjHv5Bxy+RSyFXGYwcC6hChez4wf/gd7dmYXLCTQrFge4X2/4YBgK7QLNu29/Htt08AfzPwJXW9lcbwMwn6fW2Fj0CwtvAxXVbU/aAyx1g4EmXDdmR/DSFQgF4P6NvygJ9t0Bwze2ttY/TByBNXSVvgINDYKRI2ese7+7p7O3fM63+fgBZz3KdKcNoPgAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+YCDwoYIwOBffQAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAANElEQVR42u3BAQ0AAADCoPdPbQ43oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgx1lAABLpXWfAAAAABJRU5ErkJggg=='/></div>")
task.getReplySource().getSourcemailbox().getReplyContainer().setText(text);
}
}
catch(e){
println("Error: "+e);
}