Ver Mensaje Individual
  #3 (permalink)  
Antiguo 03/07/2014, 12:46
shaka025
 
Fecha de Ingreso: julio-2012
Mensajes: 94
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Adjuntar Zip o PDF en mail PHP

Foreros... ya lo he solucionado y se los comparto por si a alguien le llega a pasar, no batalle tanto como yo

1.- Guardamos en variable los parámetros que se vallan a utilizar
Código PHP:
$ruta $_SERVER['DOCUMENT_ROOT']."/ruta_a_tu_archivo/";
$mi_archivo "Archivo_a_enviar.zip";
$mi_nombre "Administrador";
$mi_email "[email protected]";
$email_to "[email protected]";
$mi_titulo "Este es un correo con archivo adjunto";
$mi_mensaje "Esta es el cuerpo de mensaje.";
mail_attachment($mi_archivo$ruta$email_to$mi_email$mi_nombre$mi_titulo$mi_mensaje); 
Funcion:
Código PHP:
function mail_attachment($filename$path$mailto$from_mail$from_name$subject$message) {
  
    
$ruta_completa $path.$filename;
    
$content chunk_split(base64_encode(file_get_contents($ruta_completa)));
    
$uidmd5(uniqid(time()));
    
$bound="--".$uid."\r\n";
    
$last_bound="--".$uid."--\r\n";
    
$header "From: ".$from_name." <".$from_mail.">\r\n";
    
$header .= "MIME-Version: 1.0\n";
    
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n";
    
$header .= "This is a multi-part message in MIME format.\r\n";
    
$header .= $bound;
    
$header .= "Content-type:text/plain; charset=utf-8\r\n";
    
$header .= "Content-Transfer-Encoding: 7bit\r\n";
    
$header .= $message."\r\n";
    
$header .= $bound;
    
$header .= "Content-Type: application/zip; name=\"".$ruta_completa."\"\r\n"
    
$header .= "Content-Transfer-Encoding: base64\r\n";
    
$header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n";
    
$header .= $content."\r\n";
    
$header .= $last_bound;

if (
mail($mailto$subject""$header)) {
        echo 
"Correo enviado";
    } else {
        echo 
"ERROR en el envio";
    }
 } 
Si quieren enviar un pdf o algun otro archivo tienen que cambiar la siguiente linea
Código PHP:
$header .= "Content-Type: application/zip; name=\"".$file."\"\r\n"
por esta linea:
Código PHP:
$header .= "Content-Type: application/pdf; name=\"".$file."\"\r\n"
Obviamente la variable $my_file tiene que llevar la extension pdf o la que vallan a usar.

Aquí les dejo una pagina donde se les muestra como iría ese header en base al archivo a udjuntar:
http://webdesign.about.com/od/multim...ntent-type.htm