Foros del Web » Programando para Internet » PHP »

Ayuda para enviar E mail

Estas en el tema de Ayuda para enviar E mail en el foro de PHP en Foros del Web. Hola a todos, tengo el siguente problema, necesito hacer el envio a una lista de mis proveedores todos los dias con un archivo adjunto en ...
  #1 (permalink)  
Antiguo 26/10/2007, 14:57
 
Fecha de Ingreso: octubre-2007
Mensajes: 6
Antigüedad: 17 años, 1 mes
Puntos: 0
Ayuda para enviar E mail

Hola a todos, tengo el siguente problema, necesito hacer el envio a una lista de mis proveedores todos los dias con un archivo adjunto en formato *.pdf, hasta aqui no hay problema, el lio viene al enviarlos pues de una lista de entre 25 y 50 direcciones de correo, solo lo envia a por mucho a 14, es decir derrepente simplmente deja de ejecutar el scipt antes de terminar el bluce y los demas correos no son enviados, por favor ayudenme s urgente que termine este proyecto. Añexo mi script para que le den unvistazo
Código:
<?
require('class.phpmailer.php'); 

$klineas = file("ord.conf"); //extraido de un archivo laruta donde se encuentran los *.pdf
	foreach ($klineas as $kLinea)
	    $kLinea = $klineas[0];

$vlineas = file("send.conf"); //extraido de un archivo laruta donde se encuentran las direcciones de correo
	foreach ($vlineas as $sLinea)
	    $sLinea = $vlineas[0];
//Scriptpara extraer proveedores, orden e e-mail a donse sera enviada la oreden de compra
if (!file_exists(trim($sLinea)))
{                                                                 
       echo '<td style="background-color:#cccccc;">Error '.$sLinea.' no existe';
	   exit();
}

		
    $line = file(trim($sLinea));
	echo "<br>".count($line);
    echo '<tr style="text-align:center;background-color:#4a6890;color:#fff;">';
    echo '<td>Orden</td><td>Proveedor</td><td>De:</td><td>Estado de Evío</td><td>Para:</td></tr>';
    for ($i=0; $i<count($line); $i++)
    { 
	$Orden= substr($line[$i],0,18);
	$Orden=substr($line[$i],0,8);
	$Preveedor= substr($line[$i],18,30);
	$email=substr($line[$i],48,60);
	//$from=substr($line[$i],149, 50);
	$from="[email protected]";
	echo "<tr>";
	  echo "<td>".trim($Orden)."</td>";
          echo '<td style="background-color:#cccccc;">'.trim($Preveedor)."</td>";
		  echo "<td>".strtolower(trim($from))."</td>";
		  echo '<td style="background-color:#cccccc;">'.strtolower(trim($email))."</td>";
//**************************************************************************************************************************
	  $mail = new phpmailer();                                                                                        
          $mail->SMTPAuth = false;                                                                                    
         $mail->Host = "mail.xxx.com";                                                                         
          $mail->From = "[email protected]";                                                                   
         $mail->AddAddress(trim($email));                                                                            
         $nombre_archivo = "\\\mextol06\public\Orden de Compra\OC_".trim($Orden)."_0.pdf";                           
         $mail->FromName = "Nueva Orden";                                                                        
         $mail->Subject = "Actualizado 26102007"; "Orden No ".$Orden;                                                
          //Funcion de validacion del envio E-Mail                                                                    
         if (!file_exists($nombre_archivo)) {                                                                        
         	  echo '<td style="background-color:#ffcc00;">Error: '.$nombre_archivo.' no existe no enviado';           
         }                                                                                                           
          else                                                                                                        
          {                                                                                                           
	  	  $mail->AddAttachment($nombre_archivo,"OC_".trim($Orden)."_0.pdf");                                          
	      $body = "<strong>Estimado ".$Preveedor."</strong><br><br>";                                                 //
		  $body.= "Esta es una prueba, si recibe este mensaje haga caso omiso y disculpe las molestias.<Br> Grcaias";  
		  $body.= "<br><i>Enviado LIA Ismael Almaraz A.</i>";                                                         
	      $mail->Body = $body;                                                                                        
		  $mail->IsHTML(true);                                                                                        
          $exito = $mail->Send();  
              $mail->ClearAddresses();   
			  $mail->ClearAttachments();                                                                                     
			  if(!$exito)                                                                                             
			  {                                                                                                       
		    	   echo '<td style="background-color:#ff0000;">Error: '.$mail->ErrorInfo."</td>";                     
			  }                                                                                                       
			   else                                                                                                   
			  {                                                                                                       
   			   echo '<td style="background-color:#99ccff;">'.$i.' Se Envio '.$nombre_archivo.' Satisfactoriamente</td>'; 
			  }                                                                                                  
          }                                                                                                           
//**************************************************************************************************************************
	echo "</tr>";
    }
	/*a esta parte ya no llega se rompe antes de concluir*/
	$path1=substr($sLinea,0,trim(strlen($sLinea)-6));
	$path1= trim($path1)." ".date("jnY").".txt";
	$path2= trim($sLinea);
	rename($path2,$path1);
?>
  #2 (permalink)  
Antiguo 26/10/2007, 15:09
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Re: Ayuda para enviar E mail

Revisa tu configuracion de php ya que cada script tiene un "max_execution_time" y eso puede ser lo que pasa.

Por lo demas parece estar todo correcto, aunque me gustaria que le agregaras a tu archivo la siguiente linea despues del require:
Código PHP:
error_reporting(E_ALL^E_NOTICE); 
En una de esas el mismo php nos dira el error.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 28/10/2007, 11:34
 
Fecha de Ingreso: octubre-2007
Mensajes: 6
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Ayuda para enviar E mail

Gracias por las sugerencias Marvin voy a revisar lo que me dijiste y posteo los resultados

Saludos
  #4 (permalink)  
Antiguo 29/10/2007, 08:42
 
Fecha de Ingreso: octubre-2007
Mensajes: 6
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Ayuda para enviar E mail

Gracias Marvin, ese era el unico detalle, ahora mi script funciona a la perfeccion, algo mas si no es mucha molestia, cuando envio los e mails guardo losresultados enuna tabla html como pueden ver en miscript, ¿existe la posibilidad de guardar esa tabla conmis resultado en un hoja de excel?. Bueno Marvin, mil gracias ¡¡¡me salvaste lavida!!!.
  #5 (permalink)  
Antiguo 29/10/2007, 11:04
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Re: Ayuda para enviar E mail

;) no problem.

Para guardarlos en un excel mira estos link de las FAQ's de PHP:

Re: FAQ's de PHP - Mas clasicas

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
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 21:12.