Foros del Web » Programando para Internet » PHP »

Problemas con phpmailer...no envia todos los emails

Estas en el tema de Problemas con phpmailer...no envia todos los emails en el foro de PHP en Foros del Web. Hola a todos, un amigo me paso este codigo para poder enviar mis boletines a los clientes registrados en la empresa y ambos tenemos el ...
  #1 (permalink)  
Antiguo 06/05/2010, 00:50
 
Fecha de Ingreso: abril-2010
Mensajes: 6
Antigüedad: 14 años
Puntos: 0
Problemas con phpmailer...no envia todos los emails

Hola a todos, un amigo me paso este codigo para poder enviar mis boletines a los clientes registrados en la empresa y ambos tenemos el mismo problema que no podemos solucionarlo y no sabemos porque esta sucediendo.

Utilizamos phpmailer y jalamos los emails de una base de datos, escogemos un rango de unos 400 mails para enviar, ya que nuestro servidor nos permite 450 por hora, pero en el transcurso del envio se traba en el numero 199 a veces en el 200 hay veces en el 1XX y asi esta sucediendo...Alguien podria ayudarnos a corregir el codigo...Nos basamos en ideas salidas de este foro para hacer el codigo...ayuda pleaseeeee

Aqui el codigo

<?

include("class.phpmailer.php");

//.................................................. .................................................. .....
set_time_limit(85000);
for($i=0;$i<200;$i++)
{
echo ".";
}
echo "<br>enviando, puede cerrar";

flush();
//.................................................. .................................................. .....

function enviomails(){
//.................................................. .................................................. .....
//.................................................. .................................................. .....
//.................................................. .................................................. .....
$mail = new PHPMailer();

$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";
$mail->Host = "mail.dominio.com";
$mail->Port = 25;
$mail->Username = "[email protected]";
$mail->Password = "password";



$mail->IsHTML(true);

$mail->AddEmbeddedImage("images/qwe.gif","qwe");



$mail->SetFrom([email protected]', ');
$mail->AddReplyTo("[email protected]","texto");
$mail->Subject = "texto";
$mail->Body =
"<img src='cid:qwe' alt='Logo' width='500' height='600'/>";
$mail->AltBody = "texto";

include("accesos.php");
$cn=mysql_connect($server,$user,$pass);
mysql_select_db($BD,$cn);

$sqlA="Select * from base where campo='yo' and campo2='tu' order by id limit 0,400";
$rsA=mysql_query($sqlA,$cn);
$NotasA=mysql_num_rows($rsA);


while($MRNotasEstasA=mysql_fetch_array($rsA)){
$correo=$MRNotasEstasA["mail"];
$mail->AddAddress($correo, "texto");

$exito = $mail->Send();


$intentos=1;
while ((!$exito) && ($intentos < 5)) {
sleep(5);
echo $mail->ErrorInfo;
$exito = $mail->Send();
$intentos=$intentos+1;
}
if(!$exito)
{
echo "Problemas enviando correo ";
echo "<br/>".$mail->ErrorInfo;
}
else
{
echo "ok";
}

$mail->ClearAddresses();
sleep(8);
}


}

register_shutdown_function(enviomails);
?>
  #2 (permalink)  
Antiguo 06/05/2010, 02:41
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 15 años
Puntos: 19
Respuesta: Problemas con phpmailer...no envia todos los emails

Yo tengo una clase de envío de correos vía SMTP así k algo se de eso. El máximo de destinatarios vía SMTP es de 100 destinatarios por correo, por tanto si pones más no te los aceptará, aunque este numerito depende un poco del servidor (100 es el máximo por el estándar pero te pueden decir que hay más o menos).

AnesGyMail

Intenta enviarlo y graba el log que devuelve y mira a ver si el servidor SMTP te rechaza alguna dirección (lo pone esplicitamente con un WARNING). Nota: mi clase te bloquea a los 100 destinatarios, intento seguir los estándares)

Otra cosa que se usa bastante es filtros. Tu le envías un correo a una dirección específica, y esta se encarga de reenviarlo a las direcciones que el filtro especifique. Lo único es que tienes que buscar la forma de editar el filtro dinámicamente.
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it
  #3 (permalink)  
Antiguo 06/05/2010, 02:46
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Problemas con phpmailer...no envia todos los emails

@AnesGy, te recomiendo que vayas modificando la clase a los estándares de PHP5. Para que futuras versiones de PHP no te den problemas.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 06/05/2010, 02:59
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 15 años
Puntos: 19
Respuesta: Problemas con phpmailer...no envia todos los emails

Eso tenías que haberlo dicho en el post de la clase XD. La clase está hecha de manera que no de problemas en PHP4 ya que todavía hay gente usándo dicha versión (y desgraciadamente más de la que yo quisiera). Pero si quieres proponer cambios, estoy abierto a sugerencias.
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it

Última edición por AnesGy; 06/05/2010 a las 03:06
  #5 (permalink)  
Antiguo 06/05/2010, 03:05
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Problemas con phpmailer...no envia todos los emails

En todo caso te estás limitando a la versión PH4 (que no quiere decir que no funcionará en versiones de PHP5). Te recomiendo que en todo caso publiques dos versiones una para PHP4 y otra para PHP5. Solo debes aprender la forma como se desenvuelve OOP en PHP5. Te recomiendo libros como por ejemplo en el foro de PHP orientados a objetos hay un compañero (enriqueplace) que da clases de OOP PHP5. Puedes consultarle sobre el libro que el indica para que puedas aprender. También hay libros de compañías como por ejemplo WROX que pueden ayudarte, etc. Solo es cuestión de buscar documentación actualizada. También vas a tener que dentro de la versión de PHP5 hacer dos versiones, una para PHP 5.3 y otra para versiones anteriores. El problema es que PHP 5.3 es más estricto que las versiones anteriores. También esta version (PHP5.3), trae un concepto nuevo llamado namespace, que te pueden ser bien útiles para tu clase.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 06/05/2010, 18:57
 
Fecha de Ingreso: abril-2010
Mensajes: 6
Antigüedad: 14 años
Puntos: 0
Respuesta: Problemas con phpmailer...no envia todos los emails

Cuando envio los mails todo va bien y por el numero 199 o 200 o 183 o 1xx se detiene el envio como si ya hubiese terminado los 400 que se debió enviar...esto es a causa de una mala programación en phpmailer?...si me dicen que el limite podria ser 100 por causa del smtp, entonces porque el envio de mas de 150 sin detenerse?y si mi hosting me permite el envio de 450 por hora, porque deberia haber el limite de 100?...se envia cada 8 segundo cada mail...está mala o buena la programación de ese código de arriba?...agradezco su tiempo...

No se a que se refieren con AnesGyMail ya que no se puede abrir...

Gracias y saludos

Etiquetas: email
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 12:47.