22/04/2002, 11:18
|
| | | Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 23 años Puntos: 5 | |
Como mandar ficheros adjuntosen un mail() Aqui estamos, les voy a dejar una clase que tengo por aqui para enviar datos adjuntos con la funcion mail();
<?
//"mime_mail.php"
class mime_mail
{
var $parts;
var $to;
var $from;
var $headers;
var $subjet;
var $body;
/*
* void mime_mail()
*
*/
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])
*
*/
function add_attachment($message, $name = "", $ctype = "application/octet-stream") {
$this->parts[] = array (
"ctype" => $ctype,
"message" => $message,
"encode" => $encode,
"name" => $name
);
}
/*
* void build_message()
*
*/
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()
*
*/
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";
}
/*
* string get_mail()
*
*/
function get_mail($complete = true) {
$mime = "";
if (!empty($this->from))
$mime .= "Form: " . $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";
}
}
if (!empty($this->body))
$this->add_attachment($this->body, "", "text/plain");
$mime .= "MIME-Version: 1.0\n" . $this->build_multipart();
return $mime;
}
/*
* void send()
*
*/
function send() {
$mime = $this->get_mail(false);
mail($this->to,$this->subject, "", $mime);
}
};
?>
La forma de usar la clase es la siguiente:
<?
include("mime_mail.php");
$filename = "usuario.gif"; //nombre del archivo
$content_type = "image/gif"; //tipo de archivo
$fd = fopen($filename,"r");
$data = fread($fd,filesize($filename));
fclose($fd);
$mail = new mime_mail;
$mail->from = "";
$mail->to = "";
$mail->subject = "";
$mail->body = "";
$mail->add_attachment($data, $filename, $content_type);
$mail->send();
?>
<table style="border:1px solid black"><tr><td><center>
<embed width="88" height="144" src="http://www.alaplaya.com/~epplestun/yo.swf"></td></td><font face=verdana size=1>Ivan Rodriguez el poder es [B]PHP</p></td></tr></table> |