Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/02/2009, 13:31
Avatar de Mcruzmx
Mcruzmx
 
Fecha de Ingreso: abril-2006
Mensajes: 357
Antigüedad: 18 años
Puntos: 9
probelma con phpmailer y php

hola, pues platicare en breve lo que tengo y hago.

a) 1 archivo (archivo 1) que busca en una tabla el nombre, email de usuarios y los pone en otra tabla siempre y cuando se cumpla una condicion x

b) el archivo 1 manda a llamar otro archivo (archivo 2)

c) el archivo 2 lee la tabla donde se pusieron los nombres y correos en el paso "a" y uno por uno en teoria se va mandando un correo personalizado (que ese no es el tema de la pregunta), pues al consultar la tabla con mysql utilizo un while, en cada ciclo se supone que envia un mail. si envia el mail elimina ese registro para despues volver a intentar manualmente.

EL PROBLEMA: no se envian todos los correos, en veces se envia uno, o cuando mucho 4, siendo que por lo general se agregan hasta 12 usuarios aproximadamente. (siempre se queda en los primeros registros)

PRUEBAS: intente imprimir algo cada vez que cumpliera un ciclo, y si lo hace, seña que el while y la sentencia mysql esta correcta. tambien puse en comentario el codigo de phpmailer y que imprimiera el registro que lee, y lo hace bien, pero cuando vuelvo a activar (quitar comentarios) el codigo de phpmailer para mandar el mail como que no continua ni muestra mensajes ni nada.

El CODIGO (archivo 2)

Código:
<?
//sending email
	include '../connect.php';
	
	$sql=mysql_query("SELECT * FROM mailing");
	
	while ($row = mysql_fetch_array($sql)){
		$docs_turnados=$row[4]+$row[5];
		$documentos_generales=$row[4];
		$documentos_bandeja=$row[5];
		
		require_once '../../phpmailer/class.phpmailer.php';
		error_reporting(0);
		
		
		$mail = new PHPMailer ();
		
		$mail -> From = "SISPA@NET";
		$mail -> FromName = "Sistema";
		$mail -> AddAddress ($row[3].'x');
		$mail -> Subject = $docs_turnados." Documentos turnados sin responder.";
		$mail -> Body = 'cuerpo del mail (omitido por privacidad)';		
		$mail -> IsHTML (true);
		
		$mail->IsSMTP();
		$mail->Host = 'ssl://smtp.gmail.com';
		$mail->Port = 465;
		$mail->SMTPAuth = true;
		$mail->Username = '(omitida por seguridad)';
		$mail->Password = '(omitida por seguridad)';
		
		
		if(!$mail->Send()) {
			echo '<font face="Trebuchet MS" size="2" color="#CC3300"><span style="background-color: #F4F4F4">&nbsp;Error: ' . $mail->ErrorInfo.' </span></font>';
		}else{
			echo '<br><font face="Trebuchet MS" size="2" color="#008000"><span style="background-color: #F4F4F4">&nbsp;Notificacion enviada correctamente a:  <b>'.$row[3].'</b></span></font><br>';
			
			$sql="DELETE FROM mailing WHERE id_registro='$row[0]'";
	
			$result=mysql_query($sql, $link);
			if (!$result) {
				echo 'error al eliminar la notificación del servidor<br>';
			}else{
				echo 'la notificación se ha eliminado del servidor<br>';
			}
			
		}
		
		echo '<hr>';
		
	}
	echo 'done';
?>

en si, todo pareciera que algo esta protegiendo para que no use phpmailer como "spamer" cosa que no hago, phpmailer me funciona bien cuando son correos individuales, pero en verdad que necesito hacer esto de las notificaciones pues es parte de un sistema de documentacion y se necesita avisar a los trabajadores por medio de email cuando les llega documentacion.


gracias por la valiosa ayuda