PHP7 compatibility fixes.
[fa-stable.git] / reporting / includes / class.mail.inc
index 778815534f01e83144c488434b8af765e21832a0..16cc81c368f7a7b0a69894e10a1a14e77cc554d3 100644 (file)
@@ -39,11 +39,15 @@ class email
     var $subject = "";
     var $body = "";
        var $charset = 'ISO-8859-1';
+       var $add_params;
        
-    function email($name, $mail)
+    function __construct($name, $mail)
     {
         $this->boundary = md5(uniqid(time()));
                $this->header = "From: $name <$mail>\n";
+               $bcc = get_company_pref('bcc_email');
+               if ($bcc)
+                       $this->bcc[] = $bcc;
     }
 
     function to($mail)
@@ -61,9 +65,11 @@ class email
        $this->bcc[] = $mail;
     }
 
-    function attachment($file)
+    function attachment($file, $filename=null)
     {
-               $this->attachment[] = $file;
+       if (!isset($filename))
+               $filename = basename($file);
+       $this->attachment[$filename] = $file;
     }
 
     function subject($subject)
@@ -75,7 +81,7 @@ class email
     {
         $this->body = "--$this->boundary\n";
            $this->body .= "Content-Type: text/plain; charset=\"{$this->charset}\"\n";
-           $this->body .= "Content-Transfer-Encoding: 8bit\n";
+           $this->body .= "Content-Transfer-Encoding: 8bit\n\n";
            $this->body .= $text."\n";
     }
 
@@ -83,7 +89,7 @@ class email
     {
         $this->body = "--$this->boundary\n";
            $this->body .= "Content-Type: text/html; charset=\"{$this->charset}\"\n";
-           $this->body .= "Content-Transfer-Encoding: quoted-printable\n";
+           $this->body .= "Content-Transfer-Encoding: quoted-printable\n\n";
            $this->body .= "<html><body>\n".$html."\n</body></html>\n";
     }
 
@@ -93,6 +99,8 @@ class email
                if ($filename == $file . '.zip') return 'application/x-zip-compressed';
                $file = basename($filename, '.pdf');
                if ($filename == $file . '.pdf') return 'application/pdf';
+               $file = basename($filename, '.xls'); 
+               if ($filename == $file . '.xls') return 'application/vnd.ms-excel'; 
                $file = basename($filename, '.csv');
                if ($filename == $file . '.csv') return 'application/vnd.ms-excel';
                $file = basename($filename, '.tar');
@@ -103,61 +111,44 @@ class email
                if ($filename == $file . '.tgz') return 'application/x-tar-gz';
                $file = basename($filename, '.gz');
                if ($filename == $file . '.gz') return 'application/x-gzip';
+               $file = basename($filename, '.html');
+               if ($filename == $file . '.html') return 'text/html';
                return 'application/unknown';
        }
 
        function send()
     {
-        // CC Empfänger hinzufügen
-        $max = count($this->cc);
-        if ($max > 0)
-        {
-            $this->header .= "Cc: ".$this->cc[0];
-            for ($i = 1; $i < $max; $i++)
-            {
-                $this->header .= ", ".$this->cc[$i];
-            }
-            $this->header .= "\n";
-        }
-        // BCC Empfänger hinzufügen
-        $max = count($this->bcc);
-        if ($max > 0)
-        {
-            $this->header .= "Bcc: ".$this->bcc[0];
-            for ($i = 1; $i < $max; $i++)
-            {
-                $this->header .= ", ".$this->bcc[$i];
-            }
-            $this->header .= "\n";
-        }
-               $this->header .= "MIME-Version: 1.0\n";
+        // Add CC Recipients 
+               if (!empty($this->cc)) 
+                       $this->header .= "Cc: " . implode(", ", $this->cc) . "\n" ; 
+
+               // Add BCC Recipients 
+               if (!empty($this->bcc)) 
+                       $this->header .= "Bcc: " . implode(", ", $this->bcc) . "\n" ; 
                $this->header .= "Content-Type: multipart/mixed;\n boundary=\"$this->boundary\"\n";
-               $this->header .= "This is a multi-part message in MIME format.\n";
 
-        // Attachment hinzufügen
-        $max = count($this->attachment);
-        if ($max > 0)
+        // Add Attachments
+        if (!empty($this->attachment))
         {
-            for ($i = 0; $i < $max; $i++)
+            foreach ($this->attachment as $filename => $file)
             {
-                $file = fread(fopen($this->attachment[$i], "r"), filesize($this->attachment[$i]));
+                $file = fread(fopen($file, "r"), filesize($file));
                                $this->body .= "--".$this->boundary."\n";
-                               $this->body .= "Content-Type: " .$this->mime_type(basename($this->attachment[$i])). "; name=\"".basename($this->attachment[$i])."\"\n";
+                               $this->body .= "Content-Type: " .$this->mime_type($file). "; name=\"".$filename."\"\n";
                                $this->body .= "Content-Transfer-Encoding: base64\n";
-                               $this->body .= "Content-Disposition: attachment; filename=\"".basename($this->attachment[$i])."\"\n\n";
+                               $this->body .= "Content-Disposition: attachment; filename=\"".$filename."\"\n\n";
                                $this->body .= chunk_split(base64_encode($file),"72","\n");
                 $file = "";
             }
         }
-                       $this->body .= "--".$this->boundary."--\n";
+               $this->body .= "--".$this->boundary."--\n";
 
                $ret = 0;
         foreach($this->to as $mail)
         {
-                       if (mail($mail, $this->subject, $this->body, $this->header))
+                       if (mail($mail, $this->subject, $this->body, $this->header, $this->add_params))
                                $ret++;
         }
         return $ret;
     }
 }
-?>
\ No newline at end of file