X-Git-Url: https://git.cweiske.de/bdrem.git/blobdiff_plain/5c88f5e19a69485da44e132e0b102b835eee7f05..d6b4a3d614aeaccf45fb047a3e990f77b935a333:/src/bdrem/Renderer/Mail.php
diff --git a/src/bdrem/Renderer/Mail.php b/src/bdrem/Renderer/Mail.php
index d7aef3e..0efa3af 100644
--- a/src/bdrem/Renderer/Mail.php
+++ b/src/bdrem/Renderer/Mail.php
@@ -28,6 +28,18 @@ require_once 'Mail/mime.php';
*/
class Renderer_Mail extends Renderer
{
+ /**
+ * Add HTML part to email
+ * @var bool
+ */
+ public $html = true;
+
+ /**
+ * CSS "inline" in tags, or "separate" in a style block
+ * @var string
+ */
+ public $css = 'inline';
+
/**
* Render the events - send out mails.
*
@@ -52,8 +64,8 @@ class Renderer_Mail extends Renderer
$subject .= ': ' . implode(', ', $todays);
}
- $rc = new Renderer_Console();
- $rh = new Renderer_Html();
+ $rc = new Renderer_Console();
+ $rht = new Renderer_HtmlTable();
$hdrs = array(
'From' => $this->config->get('mail_from', 'birthday@example.org'),
@@ -69,7 +81,20 @@ class Renderer_Mail extends Renderer
);
$mime->setTXTBody($rc->render($arEvents));
- $mime->setHTMLBody($rh->render($arEvents));
+ if ($this->html) {
+ if ($this->css == 'inline') {
+ $html = $this->inlineCss(
+ $rht->render($arEvents),
+ Renderer_Html::getCss()
+ );
+ } else {
+ $html = ''
+ . $rht->render($arEvents);
+ }
+ $mime->setHTMLBody($this->minifyHtml($html));
+ }
$body = $mime->get();
$hdrs = $mime->headers($hdrs);
@@ -107,5 +132,113 @@ class Renderer_Mail extends Renderer
return mb_substr($str, 0, $len - 1) . 'â¦';
}
+
+ /**
+ * Takes the HTML and CSS code and inlines CSS into HTML.
+ *
+ * This is important for some e-mail clients which do
+ * not interpret