Foros del Web » Programando para Internet » PHP »

Mail masivo y set_time_limit(0)

Estas en el tema de Mail masivo y set_time_limit(0) en el foro de PHP en Foros del Web. Hola: Utilizo este script para envíar un mail a 1200 usuarios más o menos. Código PHP: <?php set_time_limit ( 0 );  include( "conexion.php" );  $sql  ...
  #1 (permalink)  
Antiguo 13/03/2005, 03:53
 
Fecha de Ingreso: mayo-2004
Mensajes: 393
Antigüedad: 19 años, 11 meses
Puntos: 0
Mail masivo y set_time_limit(0)

Hola:
Utilizo este script para envíar un mail a 1200 usuarios más o menos.

Código PHP:
<?php
set_time_limit
(0); 
include(
"conexion.php"); 
$sql = ("SELECT *FROM usuarios "); 
$result mysql_query($sql);
while (
$row mysql_fetch_array($result))
{
$email=$row[email];
$nombre=$row[nombre];
/* cabeceras adicionales */
$cabeceras .= "From: miweb.com <[email protected]>\r\n";

$correo "$nombre: \n
Aquñi el texto. \n 
Suerte y cordiales saludos \n
Equipo de www.miweb.com \n"
;
$email"$email"
$email_webmaster "[email protected]"
$asunto "Lo que sea";
mail($email,$asunto,$correo,"FROM: $email_webmaster");
}
if(
mail
{
echo 
" Se han enviando los mails";
}
else{
echo
"Ha habido un problema";
}
?>
El caso es que:

set_time_limit(0); parece que no actúa. En teoría debería ejecutar el script en tiempo indefinido. La realidad es que pasados 30 segundos ( los configurados en el servidor como tiempo máximo de ejecución) devuelve una página de error (No se puede mostrar la página).

Lo que me parece es que el script lo he construido mal y posiblemente el set_time_limit(0) esté en mal sitio.

¿Véis algo mal y podéis decirmelo?.

Muchas gracias atodos

Última edición por javifo; 13/03/2005 a las 03:57
  #2 (permalink)  
Antiguo 13/03/2005, 18:12
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Seguramente no lo podes usar por el safe mode.
hace una cosa, empaqueta el envio en paquetes de, digamos, 50 emails.
O sea, en vez de hacer un select levantando todo, paginalos, y una vez terminado el while, si hay mas, recargas la pagina (lo mismo que un paginado) incrementando la pagina.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #3 (permalink)  
Antiguo 13/03/2005, 22:30
 
Fecha de Ingreso: mayo-2004
Mensajes: 393
Antigüedad: 19 años, 11 meses
Puntos: 0
Gracias por tu interés.

El safe mode está en off, por tanto por ahí no viene el problema.
Los mails se envían, pero cuando el script lleva 30 segundos, se corta. Por eso pensé que el set_time_limit(0) no actuaba. Pero debe ser otra cosa del servidor. Si lo pensamos bien, aunque sea de pago y de calidad, algún tipo de limitación han de ponerle.

Por tanto, cojo la buena idea de nicolaspar de trocear el while.

A ver qué te parece esta solución:
1.- Selecciono 100 mails (los 100 primeros) y los mando.
2.- Al terminar el bucle while, no debería recargarse la página, ya que si lo hiciera volvería a mandar los mails a los mismos destinatarios.
Por tanto, cargo otra página que seleccione del 101 al 200. y así hasta terminar.

Lo que no sé es si con un header location después me funcionaría este sistema. Lo probaré.

Muchas gracias
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 07:31.