Foros del Web » Programando para Internet » PHP »

PHP Enviar mail con adjunto llega con ERROR

Estas en el tema de PHP Enviar mail con adjunto llega con ERROR en el foro de PHP en Foros del Web. buena tarde, me dirijo a los expertos porque estoy probando scripts que encontré en internet para enviar un correo electrónico con un archivo adjunto. el ...
  #1 (permalink)  
Antiguo 30/07/2015, 20:00
Avatar de Ciberdanny  
Fecha de Ingreso: marzo-2005
Ubicación: Distrito Federal
Mensajes: 208
Antigüedad: 14 años, 7 meses
Puntos: 1
Pregunta PHP Enviar mail con adjunto llega con ERROR

buena tarde, me dirijo a los expertos porque estoy probando scripts que encontré en internet para enviar un correo electrónico con un archivo adjunto.

el código que entontre es este:

Código PHP:
<?php
function mail_attachment($filename$path$mailto$from_mail$from_name$replyto$subject$message) {
    
$file $path.$filename;
    
$file_size filesize($file);
    
$handle fopen($file"r");
    
$content fread($handle$file_size);
    
fclose($handle);
    
$content chunk_split(base64_encode($content));
    
$uid md5(uniqid(time()));
    
$name basename($file);
    
$header "From: ".$from_name." <".$from_mail.">\r\n";
    
$header .= "Reply-To: ".$replyto."\r\n";
    
$header .= "MIME-Version: 1.0\r\n";
    
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
    
$header .= "This is a multi-part message in MIME format.\r\n";
    
$header .= "--".$uid."\r\n";
    
$header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
    
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
    
$header .= $message."\r\n\r\n";
    
$header .= "--".$uid."\r\n";
    
$header .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"// use different content types here
    
$header .= "Content-Transfer-Encoding: base64\r\n";
    
$header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
    
$header .= $content."\r\n\r\n";
    
$header .= "--".$uid."--";
    if (
mail($mailto$subject""$header)) {
        echo 
"mail send ... OK"// or use booleans here
    
} else {
        echo 
"mail send ... ERROR!";
    }
}

$my_file "archivo.pdf"// puede ser cualquier formato
$my_path "c:/xampp/htdocs/cpla/archivos/";
$my_name "Tu nombre";
$my_mail "[email protected]";
$my_replyto "[email protected]";
$my_subject "Le adjuntamos la credencial de invuitación al evento";
$my_message "Tu mensaje";
mail_attachment($my_file$my_path"[email protected]"$my_mail$my_name$my_replyto$my_subject$my_message);
?>
funciona, de hecho todos los códigos diferentes que he probado funcionan, si me envían el correo y lo recibo bien; pero el adjunto me llega con 0 bytes de tamaño, es decir, como que no adjunta el archivo que le indico sino que lo crea vacío y lo envía, no se porque???

ya probé cambiando la ruta de mil formas y todas dan en lo mismo.

alguien sabrá en que estoy fallando?? que debo hacer??

mi web es local en un servidor con XAMPP y MERCURY.

de antemano muchas gracias!!
__________________
www.eris.com.mx
  #2 (permalink)  
Antiguo 30/07/2015, 20:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 7 meses
Puntos: 2534
Respuesta: PHP Enviar mail con adjunto llega con ERROR

Lo mejor es que usas una librería profesional en lugar de códigos al azar, te recomiendo PHPMailer o SwiftMail.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 31/07/2015, 11:00
Avatar de ArkangelGammar  
Fecha de Ingreso: enero-2011
Ubicación: <?php $persona->ubicacion('ArkangelGammar'); ?>
Mensajes: 179
Antigüedad: 8 años, 10 meses
Puntos: 19
Respuesta: PHP Enviar mail con adjunto llega con ERROR

Concuerdo con pateketrueke, lo mejor seria utilizar una libreria profesional. Pero si queres desarrollar vos el codigo.

Te adjunto un ejemplo:

http://webcheatsheet.com/php/send_em...attachment.php


Saludos
__________________
"No entiendes algo al menos que seas capaz de explicarselo a tu abuela.
Cada dia sabemos mas....y entendemos menos...."

A. Einstein - Genio mas alla de la razon.
  #4 (permalink)  
Antiguo 31/07/2015, 14:29
Avatar de Ciberdanny  
Fecha de Ingreso: marzo-2005
Ubicación: Distrito Federal
Mensajes: 208
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: PHP Enviar mail con adjunto llega con ERROR

hola, ok, voy a revisar para hacer yo el código,

la pregunta era directamente ¿Por qué si me funciona el código y todo, pero el adjunto llega sin peso?? llega dañado.

Pensaba que era algún parámetro en el mercury o en el xampp o algo por el estilo, pero si no hay solución, en fin

vere la opción de desarrollar el codigo yo mismo con lo que ya trae el xampp y si no funciona entonces usaría una librería



agradezco la info.

un saludo
__________________
www.eris.com.mx
  #5 (permalink)  
Antiguo 31/07/2015, 14:37
Avatar de Ciberdanny  
Fecha de Ingreso: marzo-2005
Ubicación: Distrito Federal
Mensajes: 208
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: PHP Enviar mail con adjunto llega con ERROR

Cita:
Iniciado por ArkangelGammar Ver Mensaje
Concuerdo con pateketrueke, lo mejor seria utilizar una libreria profesional. Pero si queres desarrollar vos el codigo.

Te adjunto un ejemplo:

http://webcheatsheet.com/php/send_em...attachment.php


Saludos
fíjate que utilice el ejemplo del link que me diste y funciona...

pero igual, el adjunto me llega dañado, con un peso de 77 bytes o de 107 bytes, cuando pesa almenos 30kbs

me gustaría resolver esta incógnita antes de tener que usar una librería,

en fin si alguien sabe que esta pasando le agradecería sobremanera la ayuda
__________________
www.eris.com.mx

Etiquetas: llega, mail
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




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