aboutsummaryrefslogtreecommitdiff
path: root/src/bdrem/Renderer/Mail.php
diff options
context:
space:
mode:
authorChristian Weiske <cweiske@cweiske.de>2014-02-03 20:56:17 +0100
committerChristian Weiske <cweiske@cweiske.de>2014-02-03 20:56:17 +0100
commit6506b1ebe1ecaa6630d6d849c39b9e9d53603699 (patch)
treed7edb6606774ccb5ed1291bff6a84e756ed2769b /src/bdrem/Renderer/Mail.php
parent1fc9283634a4c281c3a2c5678bdef63c16738f23 (diff)
downloadbdrem-6506b1ebe1ecaa6630d6d849c39b9e9d53603699.tar.gz
bdrem-6506b1ebe1ecaa6630d6d849c39b9e9d53603699.zip
mail sending
Diffstat (limited to 'src/bdrem/Renderer/Mail.php')
-rw-r--r--src/bdrem/Renderer/Mail.php61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/bdrem/Renderer/Mail.php b/src/bdrem/Renderer/Mail.php
new file mode 100644
index 0000000..eee8dec
--- /dev/null
+++ b/src/bdrem/Renderer/Mail.php
@@ -0,0 +1,61 @@
+<?php
+namespace bdrem;
+
+require_once 'Mail/mime.php';
+
+class Renderer_Mail
+{
+ public function render($arEvents)
+ {
+ $todays = array();
+ foreach ($arEvents as $event) {
+ if ($event->days == 0) {
+ $todays[] = $this->shorten($event->title, 15);
+ }
+ }
+ $subject = 'Birthday reminder';
+ if (count($todays)) {
+ $subject .= ': ' . implode(', ', $todays);
+ }
+
+ $rc = new Renderer_Console();
+ $rh = new Renderer_Html();
+
+ $hdrs = array(
+ 'From' => $this->config->get('mail_from', 'birthday@example.org'),
+ 'Subject' => $subject
+ );
+ $mime = new \Mail_mime(
+ array(
+ 'eol' => "\n",
+ 'head_charset' => 'utf-8',
+ 'text_charset' => 'utf-8',
+ 'html_charset' => 'utf-8',
+ )
+ );
+
+ $mime->setTXTBody($rc->render($arEvents));
+ $mime->setHTMLBody($rh->render($arEvents));
+
+ $body = $mime->get();
+ $hdrs = $mime->headers($hdrs);
+ $textHeaders = '';
+ foreach ($hdrs as $k => $v) {
+ $textHeaders .= $k . ':' . $v . "\n";
+ }
+
+ foreach ((array) $this->config->get('mail_to') as $recipient) {
+ mail($recipient, $subject, $body, $textHeaders);
+ }
+ }
+
+ protected function shorten($str, $len)
+ {
+ if (mb_strlen($str) <= $len) {
+ return $str;
+ }
+
+ return mb_substr($str, 0, $len - 1) . '…';
+ }
+}
+?> \ No newline at end of file