X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=reporting%2Fincludes%2Fclass.mail.inc;h=e5e0e67bcbb88ecf5c119f13a0830d95a09a0442;hb=6c2eb8504065becb97a0bbe66f87ed18d067293f;hp=2896ed3e03c0820ff730bd7b7f5690bcc3c353eb;hpb=da8311619dd73feae101d246a1957b972e00cbd2;p=fa-stable.git diff --git a/reporting/includes/class.mail.inc b/reporting/includes/class.mail.inc index 2896ed3e..e5e0e67b 100644 --- a/reporting/includes/class.mail.inc +++ b/reporting/includes/class.mail.inc @@ -1,4 +1,4 @@ -boundary = md5(uniqid(time())); - $this->header .= "From: $name <$mail>\n"; + $this->header = "From: $name <$mail>\n"; } function to($mail) @@ -55,18 +73,39 @@ class email function text($text) { - $this->body = "Content-Type: text/plain; charset=ISO-8859-1\n"; - $this->body .= "Content-Transfer-Encoding: 8bit\n\n"; + $this->body = "--$this->boundary\n"; + $this->body .= "Content-Type: text/plain; charset=\"{$this->charset}\"\n"; + $this->body .= "Content-Transfer-Encoding: 8bit\n"; $this->body .= $text."\n"; } function html($html) { - $this->body = "Content-Type: text/html; charset=ISO-8859-1\n"; - $this->body .= "Content-Transfer-Encoding: quoted-printable\n\n"; + $this->body = "--$this->boundary\n"; + $this->body .= "Content-Type: text/html; charset=\"{$this->charset}\"\n"; + $this->body .= "Content-Transfer-Encoding: quoted-printable\n"; $this->body .= "\n".$html."\n\n"; } + function mime_type($filename) + { + $file = basename($filename, '.zip'); + if ($filename == $file . '.zip') return 'application/x-zip-compressed'; + $file = basename($filename, '.pdf'); + if ($filename == $file . '.pdf') return 'application/pdf'; + $file = basename($filename, '.csv'); + if ($filename == $file . '.csv') return 'application/vnd.ms-excel'; + $file = basename($filename, '.tar'); + if ($filename == $file . '.tar') return 'application/x-tar'; + $file = basename($filename, '.tar.gz'); + if ($filename == $file . '.tar.gz') return 'application/x-tar-gz'; + $file = basename($filename, '.tgz'); + if ($filename == $file . '.tgz') return 'application/x-tar-gz'; + $file = basename($filename, '.gz'); + if ($filename == $file . '.gz') return 'application/x-gzip'; + return 'application/unknown'; + } + function send() { // CC Empfänger hinzufügen @@ -91,11 +130,9 @@ class email } $this->header .= "\n"; } - $this->header .= "MIME-Version: 1.0\n"; - $this->header .= "Content-Type: multipart/mixed; boundary=$this->boundary\n\n"; - $this->header .= "This is a multi-part message in MIME format\n"; - $this->header .= "--$this->boundary\n"; - $this->header .= $this->body; + $this->header .= "MIME-Version: 1.0\n"; + $this->header .= "Content-Type: multipart/mixed;\n boundary=\"$this->boundary\"\n"; + $this->header .= "This is a multi-part message in MIME format.\n"; // Attachment hinzufügen $max = count($this->attachment); @@ -104,19 +141,19 @@ class email for ($i = 0; $i < $max; $i++) { $file = fread(fopen($this->attachment[$i], "r"), filesize($this->attachment[$i])); - $this->header .= "--".$this->boundary."\n"; - $this->header .= "Content-Type: application/x-zip-compressed; name=".basename($this->attachment[$i])."\n"; - $this->header .= "Content-Transfer-Encoding: base64\n"; - $this->header .= "Content-Disposition: attachment; filename=".basename($this->attachment[$i])."\n\n"; - $this->header .= chunk_split(base64_encode($file))."\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-Transfer-Encoding: base64\n"; + $this->body .= "Content-Disposition: attachment; filename=\"".basename($this->attachment[$i])."\"\n\n"; + $this->body .= chunk_split(base64_encode($file),"72","\n"); $file = ""; } } - $this->header .= "--".$this->boundary."--\n\n"; + $this->body .= "--".$this->boundary."--\n"; foreach($this->to as $mail) { - $ret = mail($mail, $this->subject, "", $this->header); + $ret = mail($mail, $this->subject, $this->body, $this->header); } return $ret; }