Foros del Web » Programando para Internet » PHP »

probelma con phpmailer y php

Estas en el tema de probelma con phpmailer y php en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 06/02/2009, 13:31
Avatar de 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

  #2 (permalink)  
Antiguo 06/02/2009, 13:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: probelma con phpmailer y php

mmm... el problema esta en enviar demasiados emails dentro del ciclo, o sea... no cada 5 segundos, si no inmediatamente!!

por eso, un envío individual va perfecto... o no??

el "spam" surge por enviar consecutivamente N numero de emails, tal ves hay un limite... si programaras un mejor gestor/cola de correos... seria genial!

una solución es usar CRON para programar el envío, cada cierto tiempo... además de eficiente, es lo ideal....


R: tu pregunta ¿es clara?? (y eso que nunca pones los signos de interrogación )
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/02/2009, 13:42
Avatar de Mcruzmx  
Fecha de Ingreso: abril-2006
Mensajes: 357
Antigüedad: 18 años
Puntos: 9
uso windows xp sp2, con appserv para el servidor (php+mysql) no pude lograr instalar un servidor de correos, por eso utilizo el phpmailer, de hecho estaba utilizando las tareas programadas de windows para ejecutar el archivo 1, pero pues no mandaba la información.

eso precisamente estaba observando que quizas php esta configurado con un tiempo limite de ejecucion, mismo que al usar el phpmailer sobrepasa el limite y entrega los resultados al navegador a lo que "alcanzo a realizar" no sé, es mi teoria jeje

que signos? jeje

se me olvido hacer la aclaración que cuando elimino el registro cuando se supone que "si se envio correctamente el mail" esta funcionano, es decir, si elimina esas cosas, pero, no envia el correo. otro detalle, cuando pongo "echo" y que imprima que si se envio tampoco lo hace.

extraño no? hasta pienso que pudiera ser error de sintaxis

Última edición por GatorV; 06/02/2009 a las 20:20
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 01:32.