diff options
| author | Christian Weiske <cweiske@cweiske.de> | 2014-02-03 20:56:17 +0100 |
|---|---|---|
| committer | Christian Weiske <cweiske@cweiske.de> | 2014-02-03 20:56:17 +0100 |
| commit | 6506b1ebe1ecaa6630d6d849c39b9e9d53603699 (patch) | |
| tree | d7edb6606774ccb5ed1291bff6a84e756ed2769b /src/bdrem/Renderer/Mail.php | |
| parent | 1fc9283634a4c281c3a2c5678bdef63c16738f23 (diff) | |
| download | bdrem-6506b1ebe1ecaa6630d6d849c39b9e9d53603699.tar.gz bdrem-6506b1ebe1ecaa6630d6d849c39b9e9d53603699.zip | |
mail sending
Diffstat (limited to 'src/bdrem/Renderer/Mail.php')
| -rw-r--r-- | src/bdrem/Renderer/Mail.php | 61 |
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 |
