Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] phpmailer no envia doc adjunto

Estas en el tema de phpmailer no envia doc adjunto en el foro de PHP en Foros del Web. Hola!!!!Tengo el siguiente archivo el cual me sirve para enviar emails multiples funciona bien solo que no encuentro porque no se envia el archivo adjunto ...
  #1 (permalink)  
Antiguo 09/05/2013, 11:56
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Exclamación phpmailer no envia doc adjunto

Hola!!!!Tengo el siguiente archivo el cual me sirve para enviar emails multiples funciona bien solo que no encuentro porque no se envia el archivo adjunto
ya trabaje antes con este codigo en un envio unico y funciono solo que aqui por el while y demás no sé si meti las lineas donde debe ser xD
alguien puede ayudarme por favor
mi file viene de un form y el nombre si es correcto archivo
Código PHP:
require("../phpmailer/class.phpmailer.php");

if(isset(
$_POST['asunto'])){ 
    
$varname $_FILES['archivo']['name'];  //*
    
$vartemp $_FILES['archivo']['tmp_name'];  //*
    
$mail = new PHPMailer();  
    
$mail->Host "localhost";  
    
$mail->From "[email protected]";  
    
$mail->FromName "Plantel";  
    
$mail->Subject $_POST['asunto']; 
    
//*
    
if ($varname != ""
    {
    
$mail->AddAttachment($vartemp$varname);
     } 
     
//*
    
if(!empty($_POST['email'])) {  
        
$aLista=$_POST['email'];
        
        
mysql_select_db($database_connection$connection);  
        
$result"SELECT * FROM informesp where Folio IN (".implode(',',$aLista).")";    
        
$rs1mysql_query($result$connection) or die(mysql_error());  
        if(
mysql_num_rows($rs1)>0){         
            while (
$row mysql_fetch_array($rs1)){ 
                
// HTML body   
                
$body "Hola <strong>".$row["Nombre"]."</strong>, ";   
                
$body.= $_POST[mensaje];   
                
                
// Text body  
                
$text "Hola ".$row["Nombre"].", \n\n";   
                
$text.= $_POST[mensaje];  
               
                
// Configurar Email  
                
$mail->Body $body;   
                
$mail->AltBody $text;   
                
$mail->AddAddress($row["Email"], $row["Nombre"]);  
                
//*
                
if(!empty( $file_name )) { 
                
$mail->AddAttachment($_FILES["archivo"]["tmp_name"], $_FILES["archivo"]["name"]); 
                } 
                
//*
                // Enviar el email  
                
if(!$mail->Send()) {  
                    echo 
"Error al enviar a: " $row["Email"] . "<br>";   
                }  
                else {
              echo 
"<script language='JavaScript'> 
                alert('Mensaje Enviado');
                </script>"
;
                 }
                
$mail->ClearAddresses();    
            }                
        }  
    } 

  #2 (permalink)  
Antiguo 09/05/2013, 11:59
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: phpmailer no envia doc adjunto

hola mira revisa esta parte porque creo que ahi es el problema

Código PHP:
Ver original
  1. if(!empty( $file_name )) {  
  2.                 $mail->AddAttachment($_FILES["archivo"]["tmp_name"], $_FILES["archivo"]["name"]);  
  3.                 }

Al menos en la parte de codigo que muestras no encuentro definida la variable $file_name , por lo tanto no entra a este if
  #3 (permalink)  
Antiguo 09/05/2013, 12:01
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: phpmailer no envia doc adjunto

Creo que asi talvez te funcione


Código PHP:
Ver original
  1. <?php
  2. require("../phpmailer/class.phpmailer.php");
  3. if(isset($_POST['asunto'])){  
  4.     $varname = $_FILES['archivo']['name'];  //*
  5.     $vartemp = $_FILES['archivo']['tmp_name'];  //*
  6.     $mail = new PHPMailer();  
  7.     $mail->Host = "localhost";  
  8.     $mail->From = "[email protected]";  
  9.     $mail->FromName = "Plantel";  
  10.     $mail->Subject = $_POST['asunto'];  
  11.     //*
  12.  
  13.      //*
  14.     if(!empty($_POST['email'])) {  
  15.         $aLista=$_POST['email'];
  16.          
  17.         mysql_select_db($database_connection, $connection);  
  18.         $result= "SELECT * FROM informesp where Folio IN (".implode(',',$aLista).")";    
  19.         $rs1= mysql_query($result, $connection) or die(mysql_error());  
  20.         if(mysql_num_rows($rs1)>0){          
  21.             while ($row = mysql_fetch_array($rs1)){  
  22.                 // HTML body    
  23.                 $body = "Hola <strong>".$row["Nombre"]."</strong>, ";    
  24.                 $body.= $_POST[mensaje];    
  25.                  
  26.                 // Text body  
  27.                 $text = "Hola ".$row["Nombre"].", \n\n";    
  28.                 $text.= $_POST[mensaje];  
  29.                
  30.                 // Configurar Email  
  31.                 $mail->Body = $body;    
  32.                 $mail->AltBody = $text;    
  33.                 $mail->AddAddress($row["Email"], $row["Nombre"]);  
  34.                 //*
  35.                 if ($varname != "")  
  36.                 {
  37.                 $mail->AddAttachment($vartemp, $varname);
  38.                  }
  39.                 //*
  40.                 // Enviar el email  
  41.                 if(!$mail->Send()) {  
  42.                     echo "Error al enviar a: " . $row["Email"] . "<br>";    
  43.                 }  
  44.                 else {
  45.               echo "<script language='JavaScript'>  
  46.                alert('Mensaje Enviado');
  47.                </script>";
  48.                  }
  49.                 $mail->ClearAddresses();    
  50.             }                
  51.         }  
  52.     }  
  53. }  
  54. ?>
  #4 (permalink)  
Antiguo 09/05/2013, 12:07
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: phpmailer no envia doc adjunto

Cita:
Iniciado por alex1084 Ver Mensaje
hola mira revisa esta parte porque creo que ahi es el problema

Código PHP:
Ver original
  1. if(!empty( $file_name )) {  
  2.                 $mail->AddAttachment($_FILES["archivo"]["tmp_name"], $_FILES["archivo"]["name"]);  
  3.                 }

Al menos en la parte de codigo que muestras no encuentro definida la variable $file_name , por lo tanto no entra a este if
Gracias pero ese no es el error cuando lo cheque para un salo email asi Funciono bien
Código PHP:
require("class.phpmailer.php");
if (
$_POST['action'] == "send") {
    
$varname $_FILES['archivo']['name'];
    
$vartemp $_FILES['archivo']['tmp_name'];
     
     
$mail = new PHPMailer();
$mail->Host "localhost";

     
$email $_POST[email2];
        
    
$mensaje.= $_POST['mensaje']."\n\n";
    
    
// asunto del email
    
$subject $_POST[nombre2];
$mail->From $_POST[email];
 if (
$varname != "") {
        
$mail->AddAttachment($vartemp$varname);
    }
$mail->FromName "Plantel";
$mail->Subject $_POST['nombre2'];
$address $_POST[email2];
$mail->AddAddress($address"Probando");
$body .= $mensaje;
$mail->Body $body;
if(!empty( 
$file_name )) { 
$mail->AddAttachment($_FILES["archivo"]["tmp_name"], $_FILES["archivo"]["name"]);  } 
if(!
$mail->Send()) {
  echo 
"Mailer Error: " $mail->ErrorInfo;
} else {
  echo 
"Mensaje Enviado!";
}

  #5 (permalink)  
Antiguo 09/05/2013, 12:09
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: phpmailer no envia doc adjunto

Por eso si revisas en tu ultimo codigo posteado y tu primero codigo las lineas que te comente no están

Solo tienes esta que si son correctas
Código PHP:
Ver original
  1. if ($varname != "") {
  2.         $mail->AddAttachment($vartemp, $varname);
  3.     }
  #6 (permalink)  
Antiguo 09/05/2013, 12:10
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: phpmailer no envia doc adjunto

Cita:
Iniciado por alex1084 Ver Mensaje
Creo que asi talvez te funcione


Código PHP:
Ver original
  1. <?php
  2. require("../phpmailer/class.phpmailer.php");
  3. if(isset($_POST['asunto'])){  
  4.     $varname = $_FILES['archivo']['name'];  //*
  5.     $vartemp = $_FILES['archivo']['tmp_name'];  //*
  6.     $mail = new PHPMailer();  
  7.     $mail->Host = "localhost";  
  8.     $mail->From = "[email protected]";  
  9.     $mail->FromName = "Plantel";  
  10.     $mail->Subject = $_POST['asunto'];  
  11.     //*
  12.  
  13.      //*
  14.     if(!empty($_POST['email'])) {  
  15.         $aLista=$_POST['email'];
  16.          
  17.         mysql_select_db($database_connection, $connection);  
  18.         $result= "SELECT * FROM informesp where Folio IN (".implode(',',$aLista).")";    
  19.         $rs1= mysql_query($result, $connection) or die(mysql_error());  
  20.         if(mysql_num_rows($rs1)>0){          
  21.             while ($row = mysql_fetch_array($rs1)){  
  22.                 // HTML body    
  23.                 $body = "Hola <strong>".$row["Nombre"]."</strong>, ";    
  24.                 $body.= $_POST[mensaje];    
  25.                  
  26.                 // Text body  
  27.                 $text = "Hola ".$row["Nombre"].", \n\n";    
  28.                 $text.= $_POST[mensaje];  
  29.                
  30.                 // Configurar Email  
  31.                 $mail->Body = $body;    
  32.                 $mail->AltBody = $text;    
  33.                 $mail->AddAddress($row["Email"], $row["Nombre"]);  
  34.                 //*
  35.                 if ($varname != "")  
  36.                 {
  37.                 $mail->AddAttachment($vartemp, $varname);
  38.                  }
  39.                 //*
  40.                 // Enviar el email  
  41.                 if(!$mail->Send()) {  
  42.                     echo "Error al enviar a: " . $row["Email"] . "<br>";    
  43.                 }  
  44.                 else {
  45.               echo "<script language='JavaScript'>  
  46.                alert('Mensaje Enviado');
  47.                </script>";
  48.                  }
  49.                 $mail->ClearAddresses();    
  50.             }                
  51.         }  
  52.     }  
  53. }  
  54. ?>
Tambien probe esto q sugieres pero sigue sin mandar el adjunto
  #7 (permalink)  
Antiguo 09/05/2013, 12:11
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: phpmailer no envia doc adjunto

Solo para confirmar que el adjunto se envía por post
Haz
Código PHP:
Ver original
  1. echo $_FILES['archivo']['name'];

Podria darse el caso que el adjunto no vaya....
  #8 (permalink)  
Antiguo 09/05/2013, 12:18
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: phpmailer no envia doc adjunto

Cita:
Iniciado por alex1084 Ver Mensaje
Solo para confirmar que el adjunto se envía por post
Haz
Código PHP:
Ver original
  1. echo $_FILES['archivo']['name'];

Podria darse el caso que el adjunto no vaya....
HICE un var_dump y el adjunto si esta pasando
  #9 (permalink)  
Antiguo 09/05/2013, 13:04
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: phpmailer no envia doc adjunto

Que extraño, porque si el adjunto es envia debería adjuntarlo
  #10 (permalink)  
Antiguo 09/05/2013, 15:29
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: phpmailer no envia doc adjunto

creo q mo q se visualiza en el email es todo lo de $body... ahora como meto en $body
if(!empty( $file_name )) {
$mail->AddAttachment($_FILES["archivo"]["tmp_name"], $_FILES["archivo"]["name"]);
}
  #11 (permalink)  
Antiguo 09/05/2013, 15:33
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: phpmailer no envia doc adjunto

Cita:
Iniciado por Briss Ver Mensaje
creo q mo q se visualiza en el email es todo lo de $body... ahora como meto en $body
if(!empty( $file_name )) {
$mail->AddAttachment($_FILES["archivo"]["tmp_name"], $_FILES["archivo"]["name"]);
}
Como asi no te entendi la idea
  #12 (permalink)  
Antiguo 09/05/2013, 15:35
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: phpmailer no envia doc adjunto

Siiii todo lo que esta en la variable $body se muestra en el email sin problema...
y esta parte
if(!empty( $file_name )) {
$mail->AddAttachment($_FILES["archivo"]["tmp_name"], $_FILES["archivo"]["name"]);
}

No se ve asi que no se si deba ir dentro de esa variable?
  #13 (permalink)  
Antiguo 09/05/2013, 15:39
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: phpmailer no envia doc adjunto

Esto no es parte del body

Código php:
Ver original
  1. if(!empty( $file_name )) {
  2. $mail->AddAttachment($_FILES["archivo"]["tmp_name"], $_FILES["archivo"]["name"]);
  3. }

Si el correo llega claro que podras ver el contenido pero mmmm sigo sin comprender a que te refieres...
  #14 (permalink)  
Antiguo 09/05/2013, 15:42
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: phpmailer no envia doc adjunto

Cita:
Iniciado por alex1084 Ver Mensaje
Esto no es parte del body

Código php:
Ver original
  1. if(!empty( $file_name )) {
  2. $mail->AddAttachment($_FILES["archivo"]["tmp_name"], $_FILES["archivo"]["name"]);
  3. }

Si el correo llega claro que podras ver el contenido pero mmmm sigo sin comprender a que te refieres...
ok solo a q si $body deberia ser = $mail->AddAttachment($_FILES["archivo"]["tmp_name"], $_FILES["archivo"]


algo asi pero creo q no
  #15 (permalink)  
Antiguo 09/05/2013, 15:43
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: phpmailer no envia doc adjunto

No para nada!!!

con esto le pasas la info del adjunto a la clase para que la incluya en el envio...
Código PHP:
Ver original
  1. $mail->AddAttachment($vartemp, $varname);
  #16 (permalink)  
Antiguo 09/05/2013, 15:46
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: phpmailer no envia doc adjunto

Bueno he solucionado mi problema jejejeje no era ningun error en el codigo
simplemente en mi form me faltaba
enctype="multipart/form-data"



Gracias otra vez
  #17 (permalink)  
Antiguo 09/05/2013, 15:48
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: phpmailer no envia doc adjunto

$body unicamente debe contener la estructura del html de tu mensaje nada que ver con el adjunto.

Lo que sospecho es que no está eviando la informacion a la clase y por lo tanto no adjunta el archivo.
  #18 (permalink)  
Antiguo 09/05/2013, 15:49
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: phpmailer no envia doc adjunto

Cita:
Iniciado por alex1084 Ver Mensaje
$body unicamente debe contener la estructura del html de tu mensaje nada que ver con el adjunto.

Lo que sospecho es que no está eviando la informacion a la clase y por lo tanto no adjunta el archivo.
Bueno he solucionado mi problema jejejeje no era ningun error en el codigo
simplemente en mi form me faltaba
enctype="multipart/form-data"



Gracias otra vez
  #19 (permalink)  
Antiguo 09/05/2013, 15:50
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: phpmailer no envia doc adjunto

Cita:
Iniciado por Briss Ver Mensaje
Bueno he solucionado mi problema jejejeje no era ningun error en el codigo
simplemente en mi form me faltaba
enctype="multipart/form-data"



Gracias otra vez
Que!!!!!!!!!!!!!!


ni modo
  #20 (permalink)  
Antiguo 09/05/2013, 15:51
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: phpmailer no envia doc adjunto

Cita:
Iniciado por alex1084 Ver Mensaje
Que!!!!!!!!!!!!!!


ni modo
jejejejeej
Gracias de nuevo
  #21 (permalink)  
Antiguo 09/05/2013, 15:53
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: phpmailer no envia doc adjunto

Cita:
Iniciado por Briss Ver Mensaje
jejejejeej
Gracias de nuevo
ok

Etiquetas: doc, envia, html, mysql, phpmailer, select, sql
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 01:47.