From 5d023098e6b5a31416949f00c66ffa28ed3cb589 Mon Sep 17 00:00:00 2001 From: Janusz Dobrowolski Date: Sun, 29 Oct 2023 23:06:25 +0100 Subject: [PATCH] [0005711] Bad Content-type set for invoice mail attachment; malformed invoice mails sent from Win based FA servers. Fixed --- reporting/includes/class.mail.inc | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/reporting/includes/class.mail.inc b/reporting/includes/class.mail.inc index 9e426db0..6634dd4b 100644 --- a/reporting/includes/class.mail.inc +++ b/reporting/includes/class.mail.inc @@ -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; -- 2.30.2