Foros del Web » Programando para Internet » PHP »

Me puede dar problemas mail() para envios masivos?

Estas en el tema de Me puede dar problemas mail() para envios masivos? en el foro de PHP en Foros del Web. Hola a todos, Voy a utilizar la función mail() para realizar el envio de un newsletter. Tengo el la base de datos una tabla llamada ...
  #1 (permalink)  
Antiguo 17/11/2004, 07:50
 
Fecha de Ingreso: octubre-2004
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 0
Me puede dar problemas mail() para envios masivos?

Hola a todos,
Voy a utilizar la función mail() para realizar el envio de un newsletter. Tengo el la base de datos una tabla llamada suscriptores con unos 400 emails.
Mi duda es si esto funcionará o puede que se colapse algo. Alguien lo ha probado alguna vez? funciona?

Código PHP:
$sql_suscriptores = @mysql_query("SELECT mail FROM suscriptores");
while(
$res mysql_fetch_array($sql_suscriptores)) {
   
$mymail $res["mail"];
   
mail($mymail$subject$contenido ,$header);

Si esto no funciona que alternativa podría utilizar?
Muchas gracias,
Jordi
  #2 (permalink)  
Antiguo 17/11/2004, 07:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En principio puedes tener problemas con el tiempo máximo de ejecucción que PHP le otorga a un script concreto .. Normalmente (por defecto) suele estar a 30 Segundos .. así que si tienes grán cantidad de e-mails que enviar .. puede tardar más de ese tiempo.

Para eso, .. puedes usar la función:

set_time_limi()
www.php.net/set_time_limit

pero "ojo" .. pues en PHP configurado en modo seguro (safe_mode) no se puede usar y dependerías de la configuración de tu PHP a nivel de php.ini (si usas un servicio de hosting en tal caso deberías consultar con tu proveedor si corresponde).

Lo otro que se va a "colapsar" será tu servidor SMTP o sendmial (MTA en general) que uses para enviar tu e-mail .. pero eso ya no es problema de PHP sino de ese tipo de servidores .. Lo que es PHP no envia el e-mail en sí sino que lo "entrega" al MTA (Mail Transfer Agent) para que este a su vez bajo su "relay" lo envie o incluso intente el envio si es que no puede en una primera instancia N veces (según configuraciones de estos).

Un saludo,

Un saludo,
  #3 (permalink)  
Antiguo 17/11/2004, 08:09
 
Fecha de Ingreso: octubre-2004
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 0
Ok, o sea que si safe_mode = off puedo usar la función set_time_limit().

El problema está ahora en donde llamo a la función y cuantos segundo le paso.

Sería esto una buena opción?
Código PHP:
función set_time_limit(0);
$sql_suscriptores = @mysql_query("SELECT mail FROM suscriptores"); 
while(
$res mysql_fetch_array($sql_suscriptores)) { 
   
$mymail $res["mail"]; 
   
mail($mymail$subject$contenido ,$header); 

Por lo que dice en la documentación, si se establece a cero, no se impone ningún límite.
Muchas gracias,
Jordi
  #4 (permalink)  
Antiguo 17/11/2004, 08:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
La función en concreto la debes usar al principo de tu script ..

Por lo demás .. no se llamada a esa función no se usa "function" .. quitaselo ..

Código PHP:
<?
set_time_limit
(0);
// resto de tu script ..
?>
Un saludo,
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:56.