4 require_once 'Mail/mime.php';
6 class Renderer_Mail extends Renderer
8 public function render($arEvents)
11 foreach ($arEvents as $event) {
12 if ($event->days == 0) {
13 $todays[] = $this->shorten($event->title, 15);
16 $subject = 'Birthday reminder';
18 $subject .= ': ' . implode(', ', $todays);
21 $rc = new Renderer_Console();
22 $rh = new Renderer_Html();
25 'From' => $this->config->get('mail_from', 'birthday@example.org'),
27 $mime = new \Mail_mime(
30 'head_charset' => 'utf-8',
31 'text_charset' => 'utf-8',
32 'html_charset' => 'utf-8',
36 $mime->setTXTBody($rc->render($arEvents));
37 $mime->setHTMLBody($rh->render($arEvents));
40 $hdrs = $mime->headers($hdrs);
42 foreach ($hdrs as $k => $v) {
43 $textHeaders .= $k . ':' . $v . "\n";
46 foreach ((array) $this->config->get('mail_to') as $recipient) {
47 mail($recipient, $subject, $body, $textHeaders);
51 protected function shorten($str, $len)
53 if (mb_strlen($str) <= $len) {
57 return mb_substr($str, 0, $len - 1) . '…';