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'),
28 $mime = new \Mail_mime(
31 'head_charset' => 'utf-8',
32 'text_charset' => 'utf-8',
33 'html_charset' => 'utf-8',
37 $mime->setTXTBody($rc->render($arEvents));
38 $mime->setHTMLBody($rh->render($arEvents));
41 $hdrs = $mime->headers($hdrs);
43 foreach ($hdrs as $k => $v) {
44 $textHeaders .= $k . ':' . $v . "\n";
47 foreach ((array) $this->config->get('mail_to') as $recipient) {
48 mail($recipient, $subject, $body, $textHeaders);
52 protected function shorten($str, $len)
54 if (mb_strlen($str) <= $len) {
58 return mb_substr($str, 0, $len - 1) . '…';