Fixed amibiguity in few text messages to make translations easier, updated gettext...
[fa-stable.git] / reporting / includes / class.mail.inc
index c6f717e9440b89ab979f136b1bd056bcde588325..7cce85a109e1788546d2c2d4cc265bad504162e2 100644 (file)
@@ -24,6 +24,8 @@
  erroneous file naming. I tried to emulate this mindset.
  Added line length and EOL char for file chunking. For some reason without
  it there were extra line feeds in the chunked file.
  erroneous file naming. I tried to emulate this mindset.
  Added line length and EOL char for file chunking. For some reason without
  it there were extra line feeds in the chunked file.
+
+ * Lots of fixes for FA
 */
 
 class email
 */
 
 class email
@@ -37,11 +39,15 @@ class email
     var $subject = "";
     var $body = "";
        var $charset = 'ISO-8859-1';
     var $subject = "";
     var $body = "";
        var $charset = 'ISO-8859-1';
+       var $add_params;
        
     function email($name, $mail)
     {
         $this->boundary = md5(uniqid(time()));
                $this->header = "From: $name <$mail>\n";
        
     function email($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)
     }
 
     function to($mail)
@@ -71,15 +77,17 @@ class email
 
     function text($text)
     {
 
     function text($text)
     {
-           $this->body = "Content-Type: text/plain; charset=\"{$this->charset}\"\n";
-           $this->body .= "Content-Transfer-Encoding: 8bit\n";
+        $this->body = "--$this->boundary\n";
+           $this->body .= "Content-Type: text/plain; charset=\"{$this->charset}\"\n";
+           $this->body .= "Content-Transfer-Encoding: 8bit\n\n";
            $this->body .= $text."\n";
     }
 
     function html($html)
     {
            $this->body .= $text."\n";
     }
 
     function html($html)
     {
-           $this->body = "Content-Type: text/html; charset=\"{$this->charset}\"\n";
-           $this->body .= "Content-Transfer-Encoding: quoted-printable\n";
+        $this->body = "--$this->boundary\n";
+           $this->body .= "Content-Type: text/html; charset=\"{$this->charset}\"\n";
+           $this->body .= "Content-Transfer-Encoding: quoted-printable\n\n";
            $this->body .= "<html><body>\n".$html."\n</body></html>\n";
     }
 
            $this->body .= "<html><body>\n".$html."\n</body></html>\n";
     }
 
@@ -89,6 +97,8 @@ class email
                if ($filename == $file . '.zip') return 'application/x-zip-compressed';
                $file = basename($filename, '.pdf');
                if ($filename == $file . '.pdf') return 'application/pdf';
                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');
                $file = basename($filename, '.csv');
                if ($filename == $file . '.csv') return 'application/vnd.ms-excel';
                $file = basename($filename, '.tar');
@@ -99,40 +109,23 @@ class email
                if ($filename == $file . '.tgz') return 'application/x-tar-gz';
                $file = basename($filename, '.gz');
                if ($filename == $file . '.gz') return 'application/x-gzip';
                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()
     {
                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 .= "Content-Type: multipart/mixed;\n boundary=\"$this->boundary\"\n";
-               $this->header .= "This is a multi-part message in MIME format.\n";
-        $this->header .= "--$this->boundary\n";
-               $this->header .= $this->content_type;
 
 
-        // Attachment hinzufügen
+        // Add Attachments
         $max = count($this->attachment);
         if ($max > 0)
         {
         $max = count($this->attachment);
         if ($max > 0)
         {
@@ -147,13 +140,14 @@ class email
                 $file = "";
             }
         }
                 $file = "";
             }
         }
-                       $this->body .= "--".$this->boundary."--\n";
+               $this->body .= "--".$this->boundary."--\n";
 
 
+               $ret = 0;
         foreach($this->to as $mail)
         {
         foreach($this->to as $mail)
         {
-                       $ret = mail($mail, $this->subject, $this->body, $this->header);
+                       if (mail($mail, $this->subject, $this->body, $this->header, $this->add_params))
+                               $ret++;
         }
         return $ret;
     }
 }
         }
         return $ret;
     }
 }
-?>
\ No newline at end of file