Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/11/2010, 06:10
Sthr
 
Fecha de Ingreso: septiembre-2007
Mensajes: 47
Antigüedad: 16 años, 7 meses
Puntos: 0
Comprimir y enviar archivos

Buenas,

tengo un script que me hace un zip de unos archivos que se encuentran en el servidor. Sé cómo hacer para que se descarguen, pero lo que necesitaria más bien es que una vez generado ese archivo comprimido(.zip) en vez de descargarse, se envie por correo a una direccion en concreto.

Alguien podria ayudarme a completar/arreglar el código o al menos orientarme para ver que estoy haciendo mal?

Muchas gracias!!

Este es el código:

require ("zipfile.php");
$zipfile = new zipfile();
$zipfile->add_dir("docs/");
$zipfile->add_file(implode("",file("img01.jpg")), "foto.jpg");

//descarga el archivo
header("Content-type: application/octet-stream");
header("Content-disposition: attachment; filename=zipfile.zip");
echo $zipfile->file();

//hago el envio
$file = fopen("zipfile.zip", "r");
$contenido = fread($file, filesize("zipfile.zip");
$encoded_attach = chunk_split(base64_encode($contenido));
fclose($file);

$asunto="Enviar un correo con fichero adjunto";
$email="[email protected]";
$mensaje="Envio de archivo";

$cabeceras = "From: <[email protected]>\n";
$cabeceras .= "Reply-To: $email\n";
$cabeceras .= "MIME-version: 1.0\n";
$cabeceras .= "Content-type: multipart/mixed; ";
$cabeceras .= "boundary=\"Message-Boundary\"\n";
$cabeceras .= "Content-transfer-encoding: 7BIT\n";
$cabeceras .= "X-attachments: fichero.bin";

$body_top = "--Message-Boundary\n";
$body_top .= "Content-type: text/plain; charset=US-ASCII\n";
$body_top .= "Content-transfer-encoding: 7BIT\n";
$body_top .= "Content-description: Mail message body\n\n";

$cuerpo = $body_top.$mensaje;

$nombref="zipfile.zip"
$cuerpo .= "\n\n--Message-Boundary\n";
$cuerpo .= "Content-type: Binary; name=\"$nombref\"\n";
$cuerpo .= "Content-Transfer-Encoding: BASE64\n";
$cuerpo .= "Content-disposition: attachment; filename=\"$nombref\"\n\n";
$cuerpo .= "$encoded_attach\n";
$cuerpo .= "--Message-Boundary--\n";

mail($email,$asunto,$cuerpo,$cabeceras);