Removed finally unimplemented freight cost field in Purchasing.
[fa-stable.git] / reporting / includes / class.mail.inc
index c6f717e9440b89ab979f136b1bd056bcde588325..16cc81c368f7a7b0a69894e10a1a14e77cc554d3 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)
+    function __construct($name, $mail)
     {
         $this->boundary = md5(uniqid(time()));
                $this->header = "From: $name <$mail>\n";
     {
         $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)
@@ -59,9 +65,11 @@ class email
        $this->bcc[] = $mail;
     }
 
        $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)
     }
 
     function subject($subject)
@@ -71,15 +79,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 +99,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,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';
                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
-        $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 .= "--".$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-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 .= 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)
         {
         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