add knowledge about the Heritrix bot
[php-utility-classes.git] / include / classes / email.php-class
index 76bdfaf8706e6168135f9fbf5f2cc6fa5d7e33a6..a2defcecfdf0720e51739e4f108ab746fee3841c 100755 (executable)
@@ -93,6 +93,9 @@ class email {
   // public function addHeader($hname, [$hcontent])
   //   add a header to the mail
   //
+  // public function addHeaderAddress($hname, $email, [$name])
+  //   add an address header to the mail, possibly with both name and mail parts
+  //
   // public function addMailText($textpart)
   //   add some text to the mail
   //
@@ -149,6 +152,12 @@ class email {
     $this->headers[] = array('name' => $hname, 'content' => $hcontent);
   }
 
+  public function addHeaderAddress($hname, $email, $name = '') {
+    if (strlen($name)) { $hcontent = $this->mimeencode($name, true).' <'.$email.'>'; }
+    else { $hcontent = $email; }
+    $this->headers[] = array('name' => $hname, 'content' => $hcontent);
+  }
+
   public function addMailText($textpart) { $this->mailtext .= $textpart; }
 
   public function addAttachment($aname, $acontent, $atype = 'application/octet-stream') {
@@ -238,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)) {