Foros del Web » Programando para Internet » PHP »

Paginar envios mail

Estas en el tema de Paginar envios mail en el foro de PHP en Foros del Web. Hola a todos: Tengo un encargo para hacer un formualario donde copiar y pegar el html de un boletin y enviarlo a unos 15000 registros ...
  #1 (permalink)  
Antiguo 21/11/2005, 04:46
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
Paginar envios mail

Hola a todos:

Tengo un encargo para hacer un formualario donde copiar y pegar el html de un boletin y enviarlo a unos 15000 registros de una base de datos comprada de usuarios que han autorizado recibir estos email... nada de spam.

Tengo problemas para enviarlos con mail() y creo, por lo que he leido, que debo paginar los envio pero no sé como hacerlo...

¿Sabéis de algun ejemplo? podrías echarme un cable, please

Gracias de antemano a todos

Última edición por Operadormail; 21/11/2005 a las 06:49
  #2 (permalink)  
Antiguo 21/11/2005, 06:50
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
Ampliar el tiempo de ejecucion del script??

Si utilizo set_time_limit() para ampliar el tiempo de ejecucion del script funcionará?? o se saturará el servidor???

Necesito ayuda please??
  #3 (permalink)  
Antiguo 21/11/2005, 06:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Saturase por extender el tiempo de ejecución no .. pero si que se podría "saturar" por el proceso en si que consuma más memoria de la que PHP se le asigna por defecto para la ejecución de un script (que son como 8MB por defecto)

De todas formas deberías ser más específico con esos "problemas" que tienes. Hay problemas sobre tiempo de ejecución, recusos consumidos por la ejecución del script .. y de conexión (para mail() tal vez con algún e-mail concreto ..) en fin .. debes especificar mejor el problema.

Un saludo,
  #4 (permalink)  
Antiguo 21/11/2005, 07:39
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
Lo seré

Lo seré...
Cluster, como puedo saber donde se me interrumpe el envio... vamos, en que e-mail concreto.

Gracias de nuevo
  #5 (permalink)  
Antiguo 21/11/2005, 08:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No sé como usas mail() .. pero mail() entrega un "booleano" si hay un problema al entregar el e-mail al MTA.

Código PHP:
if (mail(.....)){
   echo 
"problemas al enviar:".$mail."<br>";

Pero, puede ser que NO tenga problemas PHP al entregar el e-mail al MTA pero independiente de esto no se envie el e-mail o no llegue a su destinatario. En ese caso tendrás que verlo en los LOG's de tu servidor de correo ...

Un saludo,
  #6 (permalink)  
Antiguo 27/11/2005, 03:11
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
He probado a "dormir" el script durante 5 segundos cada 150 envios y a extender el tiempo de ejecucion del script 15000 segundos, pero el servidor me da una página en blanco...

Este es el código:


/*INICIALIZADO $CONTADOR A 1*/
$contador=1;
while ($emails=mysql_fetch_array($r_consulta)){
/* AMPLIAMOS EL LÍMIETE DE EJECUCION DEL SCRIPT A 15000 SEGUNDOS*/
set_time_limit(15000);
$destino =$emails["Email"];
$asunto = "Boletin";

// Mando encabezado en html
$encabezado = "MIME-Version: 1.0 \n";
$encabezado .= "Content-type: text/html; charset=iso-8859-1\n";
$encabezado .= "From: Servidor <[email protected]>\n";
$encabezado .= "X-Mailer:PHP/".phpversion()."\n";

if(mail($destino, $asunto, $boletin, $encabezado)){

echo "<p> \n";
echo "<p> \n";
echo "<p> \n";
}
/* SI CONTADOR ES DIVISIBLE (RESTO 0) POR 150 HACEMOS UNA PAUSA DE 4 SEGUNDOS PARA NO SATURAR SERVIDOR*/
if (($contador % 150) == 0) {
sleep(4);}
$contador++;
}


echo "<p>&nbsp;<p><font size='2' face='Arial'>El envio se ha realizado correctamente.</font>";
echo "<p>&nbsp;<p><font size='2' face='Arial'>Se han enviado ".$filas." </font>";



Ademas cuando no me devuelve una pagina en blanco me de este error:

OK

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.



Ayuda please

Última edición por Operadormail; 27/11/2005 a las 10:29
  #7 (permalink)  
Antiguo 27/11/2005, 20:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
More information about this error may be available in the server error log.

Ahí te dice que más información y completa lo podrías ver en esos log's. Sería interesante verlos.

De todas formas, un servidor HTTP y hasta PHP tiene tiempos definidos para una "petición" .. es decir, .. no puede estar ahí "esperandote" indefinidamente a que tu script acabe el proceso .. esos "5 segundos" pueden ser mucho para tu servidor HTTP, y no sólo esos 5 segundos de espera .. sino el tiempo total de ejecución del script.

Usas un servicio de hosting para ejecutar este script? .. o tus própios servidores (como para mirar configuración de tu servidor HTTP por ejemplo).

Un saludo,
  #8 (permalink)  
Antiguo 28/11/2005, 01:44
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
Uso hosting
  #9 (permalink)  
Antiguo 28/11/2005, 05:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Operadormail
Uso hosting
Pues lo dicho .. lo mejor es que consultes con tu proveedor . .por qué ni tu puedes ver esos log's de tu servidor HTTP ni en supuesto caso que haga falta cambiar configuración podrás hacerlo.

Mira a ver si te recomiendan alguna otra alternativa (suele usarse mucho para este tipo de envio de mails masivos aplicaciones en Perl/CGI's). Eentre otras cosas por qué no tienen las restricciones de ejecución de scripts PHP.

Un saludo,
  #10 (permalink)  
Antiguo 24/02/2006, 17:26
 
Fecha de Ingreso: mayo-2002
Ubicación: Toluca
Mensajes: 229
Antigüedad: 21 años, 11 meses
Puntos: 2
Operadormail !!!
conseguiste corregir tu error ??
a mi tambien se me pone la pantalla en blanco cuando tarda mucho en ejecutarse un script .... como puedo resolverlo ???

AYUDA !!!!
  #11 (permalink)  
Antiguo 25/02/2006, 11:39
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
Hola

Si que resolvi este problema. Es un problema de que el tiempo de ejecución del script en el servidor era demasiado corto (a pesar de utilizar set_time_limit())
Tuve que cambiar el hosting para solucionarlo.
Me pasé a Redfutura y se me solucionó... aunque ahora con ellos tengo muchos otros problemas (puedes ver sus foro) así que no te los recomiendo...
Pregunta a tu proveedor de host si puede ampliar este parametro para tu alojamiento... es la solución que yo utilicé.

Si descubres alguna otra solución por favor, hazmela saber.

Suerte¡¡¡
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 17:37.