parts=array(); $this->to= ""; $this->from= ""; $this->subject= ""; $this->body= ""; $this->headers= ""; }//fine mime_mail() //la seguente funzione aggiunge un allegato all'oggetto mail function add_attachment($message,$name= "",$ctype= "application/octetstream",$encode='base64') { $this->parts[]=array( "ctype"=>$ctype, "message"=>$message, "encode"=>$encode, "name"=>$name); }//fine add_attachment() //funzione che costruisce le parti messaggio di una mail multiparte 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"; }//fine build_message() //funzione che costruisce la mail multiparte function build_multipart() { $boundary= "b".md5(uniqid(time())); $multipart="Content-Type : multipart/mixed; boundary=$boundary\n\n". "This 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"; }//fine for return $multipart.="--\n"; }// fine build_multipart //funzione che ritorna la mail costruita function get_mail($complete=true) { $mime=""; if(!empty($this->from)) $mime.= "From: ".$this->from."\n"; if(!empty($this->headers)) $mime.=$this->headers."\n"; if($complete) { if(!empty($this->to)) { $mime.= "To: ".$this->to."\n"; } if(!empty($this->subject)) { $mime.= "Subject: ".$this->subject."\n"; } }//fine if($complete) if(!empty($this->body)) $this->add_attachment($this->body,"","text/html; charset=iso-8859-1"); $mime.="MIME-Version: 1.0\n".$this->build_multipart(); return $mime; }//fine get_mail() //funzione che invia la mail function send() { $mime=$this->get_mail(false); return mail($this->to,$this->subject, "", $mime); }//fine send() }//fine classe ?>