phpbar.de logo

Mailinglisten-Archive

AW: [php] mail + Dateianhang

AW: [php] mail + Dateianhang

Wolfgang Hauck php_(at)_phpcenter.de
Tue, 2 Apr 2002 17:41:29 +0200


Hi,

Wenns Attachment rausgeschmissen wird, dann halt Klartext:

<?php
 class mime_mail {
  var $classname = "mime_mail";  ## Persistence Support
  var $parts;
  var $to;
  var $from;
  var $headers;
  var $subject;

  /*
  * void mime_mail()
  * class constructor
  */
function mime_mail(){
  $this->parts = array();
  $this->to =  "";
  $this->from =  "";
  $this->subject =  "";
  $this->body =  "";
  $this->headers =  "";
}

   /*
   * void add_attachment(string message, [string name], [string ctype])
   * Add an attachment to the mail object
   */

function add_attachment($message, $name =  "", $ctype = 
 "application/octet-stream") {
   $this->parts[] = array ("ctype" => $ctype, "message" => $message, 
"encode" => $encode, "name" => $name);
}

 /*
  * void build_message(array part=
  * Build message parts of an multipart mail
  */

function build_message($part) {

  $message = $part[ "message"];
  $message = chunk_split(base64_encode($message));
  $encoding =  "base64";
  return  "Content-Type: ".$part[ "ctype"].($part[ "name"]? "; name = 
\"".$part[ "name"]. "\"" :  "")."\nContent-Transfer-Encoding: 
$encoding\n\n$message\n";
}

 /*
  * void build_multipart()
  * Build a multipart mail
  */

function build_multipart() {

  $boundary =  "b".md5(uniqid(time()));
  $multipart =  "Content-Type: multipart/mixed; boundary = 
$boundary\n\nThis is a MIME encoded message.\n\n--$boundary";
  for($i = sizeof($this->parts)-1; $i >= 0; $i--) {
    $multipart .=  "\n".$this->build_message($this->parts[$i]). 
"--$boundary";
  }
  return $multipart.=  "--\n";
}

 /*
  * void send()
  * Send the mail (last class-function to be called)
  */

function send() {

  $mime =  "";
  if (!empty($this->from))
     $mime .=  "From: ".$this->from. "\n";
  if (!empty($this->headers))
     $mime .= $this->headers. "\n";
  if (!empty($this->body))
     $this->add_attachment($this->body,  "",  "text/plain");
  $mime .=  "MIME-Version: 1.0\n".$this->build_multipart();
  mail($this->to, $this->subject,  "", $mime);
}

}  // end of class

 /*
  * Example usage
  *

  $attachment = fread(fopen("test.jpg", "r"), filesize("test.jpg"));
  $mail = new mime_mail();
  $mail->from = "automailer_(at)_bar.com";
  $mail->headers = "Errors-To: wbh_(at)_intern.net";
  $mail->to = "diana_(at)_intern.net";
  $mail->subject = "Testing...";
  $mail->body = "Hier kommt ein automail via php";
  $mail->add_attachment("$attachment", "test.jpg", "image/jpeg");
  $mail->add_attachment("$attachment", "test.jpg", "application/rtf");
  $mail->send();
 */
?>

MFG Wolfgang


php::bar PHP Wiki   -   Listenarchive