Skip to content

Commit

Permalink
[0005711] Bad Content-type set for invoice mail attachment; malformed…
Browse files Browse the repository at this point in the history
… invoice mails sent from Win based FA servers. Fixed
  • Loading branch information
itronics committed Oct 29, 2023
1 parent 3ad91c6 commit 5d02309
Showing 1 changed file with 10 additions and 11 deletions.
21 changes: 10 additions & 11 deletions reporting/includes/class.mail.inc
Expand Up @@ -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';
Expand All @@ -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;
Expand All @@ -68,7 +68,7 @@ class email
function attachment($file, $filename=null)
{
if (!isset($filename))
$filename = basename($file);
$filename = $file;
$this->attachment[$filename] = $file;
}

Expand Down Expand Up @@ -120,33 +120,32 @@ 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";

$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;
Expand Down

0 comments on commit 5d02309

Please sign in to comment.