Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/08/2009, 13:33
xfer2
(Desactivado)
 
Fecha de Ingreso: junio-2009
Mensajes: 256
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Error en función mail():se envia 2 veces

hola. te recomiendo que uses $_POST en vez de $_GET, porque alli vas a enviar datos de mayor longitud como en la variable texto.

sobre lo que mencionaste en tu tema que te envia 2 veces el correo, debe ser que estas repitiendo la funcion mail() 2 veces.

Código PHP:
Ver original
  1. $archivo =    $_POST['archivo'];
  2. $emailDestino =    $_POST['emailDestino'];
  3. $emailUsuario =    $_POST['emailUsuario'];
  4. $texto =    $_POST['texto'];
  5. $nombre=$_POST['nombre'];
  6.  
  7. if (isset($_POST['nombre'])) {
  8.  
  9.     echo($texto);
  10.     $renombrado=archivo;
  11.     rename($archivo, $renombrado);
  12.     $file = fopen(archivo, "r");
  13.  
  14.     $contenido = fread($file, filesize($renombrado));
  15.     $encoded_attach = chunk_split(base64_encode($contenido));
  16.     fclose($file);
  17.  
  18.     if (($nombre!="")||(strlen($nombre)>1)){
  19.  
  20.         $asunto= $nombre .", le han enviado una tarjeta!";
  21.     }
  22.     else{
  23.         $asunto="Alguien le ha enviado una tarjeta!";
  24.     }
  25.    
  26.     $email=$emailDestino;
  27.     $mensaje=str_replace("<br />","\n",$texto) . "\n\n\n\r===================================================================
  28. texto
  29. ===================================================================";
  30.  
  31.     $cabeceras = "From: LogoSea <$emailUsuario>\n";
  32.     $cabeceras .= "Reply-To: $email\n";
  33.     $cabeceras .= "MIME-version: 1.0\n";
  34.     $cabeceras .= "Content-type: multipart/mixed; ";
  35.     $cabeceras .= "boundary=\"Message-Boundary\"\n";
  36.     $cabeceras .= "Content-transfer-encoding: 7BIT\n";
  37.     $cabeceras .= "X-attachments: ".$renombrado;
  38.    
  39.     $body_top = "--Message-Boundary\n";
  40.     $body_top .= "Content-type: text/plain; charset=US-ASCII\n";
  41.     $body_top .= "Content-transfer-encoding: 7BIT\n";
  42.     $body_top .= "Content-description: Mail message body\n\n";
  43.  
  44.     $cuerpo = $body_top.$mensaje;
  45.  
  46.     $nombref=$archivo;
  47.     $cuerpo .= "\n\n--Message-Boundary\n";
  48.     $cuerpo .= "Content-type: Binary; name=\"$nombref\"\n";
  49.     $cuerpo .= "Content-Transfer-Encoding: BASE64\n";
  50.     $cuerpo .= "Content-disposition: attachment; filename=\"$nombref\"\n\n";
  51.     $cuerpo .= "$encoded_attach\n";
  52.     $cuerpo .= "--Message-Boundary--\n";
  53.  
  54.     $valorDevuelto = mail($email,$asunto,$cuerpo,$cabeceras);  
  55.  
  56.  
  57.     if ($valorDevuelto==""){
  58.         echo " ";
  59.     }
  60.     else{
  61.         echo "No :¡ ";
  62.     }
  63.  
  64.     if (!unlink($renombrado)){
  65.         echo 'no se pudo borrar el archivo :'.$renombrado;
  66.     }
  67.     else{
  68.         echo("<h2>La imágen ha sido enviada satisfactoriamente. </h2>");
  69.    
  70.     }
  71.    
  72. }


puedes colocar tu codigo html del formulario.

Te recomiendo que leas el manual de php de foros del web.

Manual de PHP

saludos.

Última edición por xfer2; 13/12/2009 a las 08:50 Razón: edito.