Foros del Web » Programando para Internet » PHP »

Como mandar ficheros adjuntosen un mail()

Estas en el tema de Como mandar ficheros adjuntosen un mail() en el foro de PHP en Foros del Web. 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 { ...
  #1 (permalink)  
Antiguo 22/04/2002, 11:18
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 22 años, 5 meses
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>
  #2 (permalink)  
Antiguo 22/04/2002, 11:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Re: Como mandar ficheros adjuntosen un mail()

Pos q te voy a decir Maestro! jeje .. q ta muyy bien ..

Pero eso si, a ver cuando te acostumbras a subir tus tutoriales algun sitio .. pa q lo podamos descargar bien .. sin cut-and-paste por aquí jejeje.

Un saludo,
  #3 (permalink)  
Antiguo 22/04/2002, 22:34
Avatar de AngelRoyo  
Fecha de Ingreso: marzo-2002
Ubicación: Santiago de Chile
Mensajes: 207
Antigüedad: 22 años, 1 mes
Puntos: 5
Re: Como mandar ficheros adjuntosen un mail()

EPLEPLEM.. por que no le pegas una explicada bien buena a cada paso, en especial al mas importante, la tecnica de tomar el file y mandarlo por mail().
Ojala lo hagas por que así aprenderia, de otro modo no tiene sentido :).

Te doy una semana.
  #4 (permalink)  
Antiguo 23/04/2002, 00:34
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 22 años, 5 meses
Puntos: 5
Re: Como mandar ficheros adjuntosen un mail()

A de acuerdo jeje, cono mme dijo Cluster tendre que ponerlos en una web los scripts. A ver si tengo tiempo por que empiezo con examenes ahorita

<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>
  #5 (permalink)  
Antiguo 23/04/2002, 03:02
 
Fecha de Ingreso: febrero-2001
Mensajes: 1.374
Antigüedad: 23 años, 2 meses
Puntos: 11
Re: Como mandar ficheros adjuntosen un mail()

muy bueno gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 14:28.