debug option for mail renderer
[bdrem.git] / src / bdrem / Renderer / Mail.php
index 8e0e625e5cec67301b30328e41c9a08174f9e07e..d7aef3e8d567b9d7442edeb092416a6ff16c7ff8 100644 (file)
@@ -1,10 +1,44 @@
 <?php
+/**
+ * Part of bdrem
+ *
+ * PHP version 5
+ *
+ * @category  Tools
+ * @package   Bdrem
+ * @author    Christian Weiske <cweiske@cweiske.de>
+ * @copyright 2014 Christian Weiske
+ * @license   http://www.gnu.org/licenses/agpl.html GNU AGPL v3
+ * @link      http://cweiske.de/bdrem.htm
+ */
 namespace bdrem;
 
 require_once 'Mail/mime.php';
 
+/**
+ * Send out mails
+ *
+ * @category  Tools
+ * @package   Bdrem
+ * @author    Christian Weiske <cweiske@cweiske.de>
+ * @copyright 2014 Christian Weiske
+ * @license   http://www.gnu.org/licenses/agpl.html GNU AGPL v3
+ * @version   Release: @package_version@
+ * @link      http://cweiske.de/bdrem.htm
+ */
 class Renderer_Mail extends Renderer
 {
+    /**
+     * Render the events - send out mails.
+     *
+     * Uses the config's "mail_to" array as recipients.
+     * Sends out a single mail for each recipient.
+     * Config "mail_from" can also be used.
+     *
+     * @param array $arEvents Array of events to display
+     *
+     * @return void
+     */
     public function render($arEvents)
     {
         $todays = array();
@@ -41,14 +75,30 @@ class Renderer_Mail extends Renderer
         $hdrs = $mime->headers($hdrs);
         $textHeaders = '';
         foreach ($hdrs as $k => $v) {
-            $textHeaders .= $k . ':' . $v  . "\n";
+            $textHeaders .= $k . ': ' . $v  . "\n";
         }
 
-        foreach ((array) $this->config->get('mail_to') as $recipient) {
-            mail($recipient, $subject, $body, $textHeaders);
+        if (!$this->config->get('debug', false)) {
+            foreach ((array) $this->config->get('mail_to') as $recipient) {
+                mail($recipient, $subject, $body, $textHeaders);
+            }
+        } else {
+            echo "Subject: " . $subject . "\n";
+            echo $textHeaders;
+            echo "\n";
+            echo $body;
         }
     }
 
+    /**
+     * Shorten the given string to the specified length.
+     * Adds ... when the string was too long
+     *
+     * @param string  $str String to shorten
+     * @param integer $len Maximum length of the string
+     *
+     * @return string Shortened string
+     */
     protected function shorten($str, $len)
     {
         if (mb_strlen($str) <= $len) {