Problema al descargar pdf, rar, zip por IMAP
Publicado por PasabaPorAqui (43 intervenciones) el 20/02/2009 09:19:48
Buenas.
Tengo la siguiente consulta. He creado un script, para recoger información de una cuenta de correo y almacenarla en una base de datos. Los adjuntos los descargo y los copio en una carpeta según el remitente.
No tengo problema en descargar archivos de imagen, excel, word,... pero cuando lo que recibo es un pdf, un rar o un zip, no los descarga.
En el caso del pdf da un error, por no poder abrir el archivo, pero los comprimidos es que ni siquiera dan error, por lo que me dá el mensaje como correctamente leído.
¿A alguien le pasó esto y encontró una solución?
Os pongo el trozo de código donde descargo los adjuntos.
$message = array();
$message["attachment"]["type"][0] = "text";
$message["attachment"]["type"][1] = "multipart";
$message["attachment"]["type"][2] = "message";
$message["attachment"]["type"][3] = "application";
$message["attachment"]["type"][4] = "audio";
$message["attachment"]["type"][5] = "image";
$message["attachment"]["type"][6] = "video";
$message["attachment"]["type"][7] = "other";
for($i = 1; $i < count($parts); $i++){
$message["pid"][$i] = ($i);
$part = $parts[$i];
if($part->disposition == "ATTACHMENT"){
$message["type"][$i] = $message["attachment"]["type"][$part->type] . "/" . strtolower($part->subtype);
$message["subtype"][$i] = strtolower($part->subtype);
$ext=$part->subtype;
$params = $part->dparameters;
$filename=$part->dparameters[0]->value;
$mege="";
$data="";
$mege = imap_fetchbody($mbox,$messagePos,$fpos);
$filename="$filename";
if($savedirpath!=""){
$fp=fopen($savedirpath."\".$filename,w);
}else{
$fp=fopen($filename,w);
}
$data=getdecodevalue($mege,$part->type);
fputs($fp,$data);
fclose($fp);
$fpos+=1;
$sSql="Insert into ApEmailsAdjuntos (ApEmailsId,Nombre) values (".$ApEmailsId.",'".$filename."')";
if(mysql_query($sSql)==false){
$bTodoOk=false;
}
}
}
Tengo la siguiente consulta. He creado un script, para recoger información de una cuenta de correo y almacenarla en una base de datos. Los adjuntos los descargo y los copio en una carpeta según el remitente.
No tengo problema en descargar archivos de imagen, excel, word,... pero cuando lo que recibo es un pdf, un rar o un zip, no los descarga.
En el caso del pdf da un error, por no poder abrir el archivo, pero los comprimidos es que ni siquiera dan error, por lo que me dá el mensaje como correctamente leído.
¿A alguien le pasó esto y encontró una solución?
Os pongo el trozo de código donde descargo los adjuntos.
$message = array();
$message["attachment"]["type"][0] = "text";
$message["attachment"]["type"][1] = "multipart";
$message["attachment"]["type"][2] = "message";
$message["attachment"]["type"][3] = "application";
$message["attachment"]["type"][4] = "audio";
$message["attachment"]["type"][5] = "image";
$message["attachment"]["type"][6] = "video";
$message["attachment"]["type"][7] = "other";
for($i = 1; $i < count($parts); $i++){
$message["pid"][$i] = ($i);
$part = $parts[$i];
if($part->disposition == "ATTACHMENT"){
$message["type"][$i] = $message["attachment"]["type"][$part->type] . "/" . strtolower($part->subtype);
$message["subtype"][$i] = strtolower($part->subtype);
$ext=$part->subtype;
$params = $part->dparameters;
$filename=$part->dparameters[0]->value;
$mege="";
$data="";
$mege = imap_fetchbody($mbox,$messagePos,$fpos);
$filename="$filename";
if($savedirpath!=""){
$fp=fopen($savedirpath."\".$filename,w);
}else{
$fp=fopen($filename,w);
}
$data=getdecodevalue($mege,$part->type);
fputs($fp,$data);
fclose($fp);
$fpos+=1;
$sSql="Insert into ApEmailsAdjuntos (ApEmailsId,Nombre) values (".$ApEmailsId.",'".$filename."')";
if(mysql_query($sSql)==false){
$bTodoOk=false;
}
}
}
Valora esta pregunta


0