onClick="window.close()"> /* 
* Class mime_mail 
* Original implementation by Sascha Schumann <[email protected]
* Modified by Tobias Ratschiller <[email protected]>: 
* - General code clean-up 
* - separate body- and from-property 
* - killed some mostly un-necessary stuff 
*/ 

class mime_mail 

var $parts; 
var $to; 
var $from; 
var $headers; 
var $subject; 
var $body; 

/* 
* 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 = "[email protected]"; 
$mail->headers = "Errors-To: [email protected]"; 
$mail->to = "[email protected]"; 
$mail->subject = "Testing..."; 
$mail->body = "This is just a test."; 
$mail->add_attachment("$attachment", "test.jpg", "image/jpeg"); 
$mail->send();