[0005711] Bad Content-type set for invoice mail attachment; malformed invoice mails...
authorJanusz Dobrowolski <janusz@frontaccounting.eu>
Sun, 29 Oct 2023 22:06:25 +0000 (23:06 +0100)
committerJanusz Dobrowolski <janusz@frontaccounting.eu>
Sun, 29 Oct 2023 22:11:37 +0000 (23:11 +0100)
reporting/includes/class.mail.inc

index 9e426db0ba826bdb6b4e27f602307dc228fa7c07..6634dd4babc58c49ef6b4e914d111ac9b4e6f83e 100644 (file)
@@ -35,7 +35,7 @@ class email
     var $bcc = array();
     var $attachment = array();
     var $boundary = "";
-    var $header = "";
+    var $headers = [];
     var $subject = "";
     var $body = "";
        var $charset = 'ISO-8859-1';
@@ -44,7 +44,7 @@ class email
     function __construct($name, $mail)
     {
         $this->boundary = md5(uniqid(time()));
-               $this->header = "From: $name <$mail>\n";
+               $this->headers['From'] = "$name <$mail>";
                $bcc = get_company_pref('bcc_email');
                if ($bcc)
                        $this->bcc[] = $bcc;
@@ -68,7 +68,7 @@ class email
     function attachment($file, $filename=null)
     {
        if (!isset($filename))
-               $filename = basename($file);
+               $filename = $file;
        $this->attachment[$filename] = $file;
     }
 
@@ -120,25 +120,24 @@ class email
     {
         // Add CC Recipients 
                if (!empty($this->cc)) 
-                       $this->header .= "Cc: " . implode(", ", $this->cc) . "\n" 
+                       $this->headers['Cc'] = implode(", ", $this->cc)
 
                // 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->headers['Bcc'] = implode(", ", $this->bcc)
+               $this->headers['Content-Type'] = "multipart/mixed;\n boundary=\"$this->boundary\"";
 
         // Add Attachments
         if (!empty($this->attachment))
         {
-            foreach ($this->attachment as $filename => $file)
+            foreach ($this->attachment as $filename => $fname)
             {
-                $file = fread(fopen($file, "r"), filesize($file));
+                $file = fread(fopen($fname, "r"), filesize($fname));
                                $this->body .= "--".$this->boundary."\n";
-                               $this->body .= "Content-Type: " .$this->mime_type($file). "; name=\"".$filename."\"\n";
+                               $this->body .= "Content-Type: " .$this->mime_type(basename($filename)). "; name=\"".basename($fname)."\"\n";
                                $this->body .= "Content-Transfer-Encoding: base64\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";
@@ -146,7 +145,7 @@ class email
                $ret = 0;
         foreach($this->to as $mail)
         {
-                       if (mail($mail, $this->subject, $this->body, $this->header, $this->add_params))
+                       if (mail($mail, $this->subject, $this->body, $this->headers, $this->add_params))
                                $ret++;
         }
         return $ret;