don't use base64 encoding on text or message attachments, var name for end boundary
authorrobert <robert>
Sat, 18 Nov 2006 12:26:35 +0000 (12:26 +0000)
committerrobert <robert>
Sat, 18 Nov 2006 12:26:35 +0000 (12:26 +0000)
include/classes/email.php-class

index bf7273c4d44e57b36aa0acac4870b381a7afab2d..a2defcecfdf0720e51739e4f108ab746fee3841c 100755 (executable)
@@ -247,12 +247,20 @@ class email {
       foreach ($this->attachments as $attach) {
         $mtxt .= "\n".'--'.$boundary."\n";
         $mtxt .= 'Content-Type: '.$attach['type'].'; name="'.$attach['name'].'";'."\n";
-        $mtxt .= 'Content-Transfer-Encoding: base64'."\n";
-        $mtxt .= 'Content-Disposition: attachment'."\n\n";
-        $mtxt .= rtrim(chunk_split(base64_encode($attach['content']), 76)); ;
-        $mtxt .= "\n";
+        if (preg_match('/^(text|message)\//', $attach['type'])) {
+          $mtxt .= 'Content-Transfer-Encoding: 8bit'."\n";
+          $mtxt .= 'Content-Disposition: attachment'."\n\n";
+          $mtxt .= $attach['content'];
+          $mtxt .= "\n";
+        }
+        else {
+          $mtxt .= 'Content-Transfer-Encoding: base64'."\n";
+          $mtxt .= 'Content-Disposition: attachment'."\n\n";
+          $mtxt .= rtrim(chunk_split(base64_encode($attach['content']), 76)); ;
+          $mtxt .= "\n";
+        }
       }
-      $mtext .= '--'.$boundary.'--'."\n";
+      $mtxt .= '--'.$boundary.'--'."\n";
     }
 
     if (strlen($this->debug_toSingleAddress)) {