Foros del Web » Programando para Internet » PHP »

enviar email con varios archivos adjuntos con mail()

Estas en el tema de enviar email con varios archivos adjuntos con mail() en el foro de PHP en Foros del Web. Buenas tardes, estoy realizando un formulario web en el que exista la posibilidad de enviar uno o varios archivos adjuntos. El caso es que no ...
  #1 (permalink)  
Antiguo 12/06/2015, 12:13
 
Fecha de Ingreso: junio-2015
Mensajes: 1
Antigüedad: 8 años, 10 meses
Puntos: 0
enviar email con varios archivos adjuntos con mail()

Buenas tardes, estoy realizando un formulario web en el que exista la posibilidad de enviar uno o varios archivos adjuntos. El caso es que no consigo que se envíen todos. Solo se envía el primero, sin embargo, veo que se recogen todos los archivos y no se lo que me falta. Os dejo el código:

------------------------------------------------------------------------
HTML:

<form action="colabora.php" method="post" enctype="multipart/form-data">

[...]

<div id="adjuntos">
<input type="file" name="archivos[]" class="form-control"/>
</div>

[...]

PHP:

[...]

if (isset ($_FILES["archivos"])) {
$tot = count($_FILES["archivos"]["name"]);
for ($i = 0; $i < $tot; $i++){
$_name=$_FILES["archivos"]["name"][$i];
$_type=$_FILES["archivos"]["type"][$i];
$_size=$_FILES["archivos"]["size"][$i];
$_temp=$_FILES["archivos"]["tmp_name"][$i];

//FILES EXISTS
if(strcmp($_name, "")){
$fp = fopen($_temp, "rb");
$file = fread($fp, $_size);
$file = chunk_split(base64_encode($file));
}

// FILES HEADERS
$headers .= "Content-Type:application/octet-stream ";
$headers .= "name=\"".$_name."\"r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; ";
$headers .= "filename=\"".$_name."\"\r\n\n";
$headers .= "".$file."\r\n";
$headers .= "--".$num."--";
}
}

[...]

mail($para, $asunto, $body, $headers)
--------------------------------------------------------------------------

Espero que me puedan ayudar.

Gracias de antemano.
  #2 (permalink)  
Antiguo 31/03/2017, 16:26
 
Fecha de Ingreso: abril-2011
Ubicación: Az, EEUU
Mensajes: 6
Antigüedad: 13 años
Puntos: 0
Sonrisa Respuesta: enviar email con varios archivos adjuntos con mail()

Hola manugr9

He buscado respuesta a tu pregunta por todos lados y no lo he encontrado, pues yo también deseo hacer lo mismo.

Me preguntaba si encontrastes respuesta a tu consulta y quizá la queres compartir?

Saludos.
  #3 (permalink)  
Antiguo 01/04/2017, 01:14
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: enviar email con varios archivos adjuntos con mail()

Usen la clase PHPMailer:
https://github.com/PHPMailer/PHPMailer

No van a querer volver a escribir ese tipo de código a mano de nuevo. La clase es MUY fácil de usar y soporta varios métodos de envío (con sendmail o SMTP, por ejemplo). Para enviar un mail con archivos adjuntos es tan fácil como esto:

Código PHP:
// Incluyo la clase
require '../PHPMailerAutoload.php';
// Creo un nuevo objeto PHPMailer
$mail = new PHPMailer;
// Armo el FROM y el TO
$mail->setFrom('[email protected]''Juan Perez');
$mail->addAddress('[email protected]''Pedro Lopez');
$mail->addAddress('[email protected]''Maria Rodriguez');
// El asunto
$mail->Subject 'El asunto del email';
// El cuerpo del mail (puede ser HTML)
$mail->Body 'El cuerpo del email';
// Los archivos adjuntos
$mail->addAttachment('/ruta/a/archivo.doc''Mi documento adjunto');
$mail->addAttachment('/ruta/a/otro_archivo.jpg''Mi foto adjunta');
// Enviar
$mail->send(); 
Lo que Uds. quieren hacer es de hecho un ejemplo que viene con la clase, la pueden encontrar en ese mismo repositorio:
https://github.com/PHPMailer/PHPMail...le_upload.phps
__________________
nahueljose.com.ar

Etiquetas: adjuntos, email, formulario, html
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




La zona horaria es GMT -6. Ahora son las 11:58.