Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/10/2006, 05:36
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 23 años, 1 mes
Puntos: 129
Lo mejor es NO lanzar por un "navegador" el proceso. Fijate que si lanzas la ejecución de tu script PHP por HTTP, tu "cliente" (el navegador) se queda a la espera hasta terminar la ejecución del script. El servidor HTTP y PHP pueden imponter "timeOut" sobre el tiempo que están a la espera de recibir todos los datos a enviar.

Para solventar ese problema puedes usar la función:

register_shutdown_function()
http://www.php.net/manual/es/functio...n-function.php

Así puedes lanzar el proceso desde tu navegador y dejarlo "en background" ejecutandose ..

También podrías programar tu script de proceso en modo "CLI" (Command Line Interface) y lanzar a ejecutar el proceso por un Cron Job .. De hecho si tu llevases el control de los e-mails enviados, podrías ejecutar "tandas" de envios de e-mails por tiempo (sin tener que hacer un "sleep()") por si tu servidor de correo no acepta más de N e-mails por X tiempo.

OJO con el tiempo de ejecución de tu script, debes aumentarlo vía set_time_limit()

Si te preocupa la optimización de recusos del servidor .. NO uses PHP. Date cuenta que PHP es un lenguaje "interpretado". Usa algún lenguaje "compilado" o aplicación ya hecha "compilada" y con PHP tan sólo controla cuando ejecutarla .. pero no su envio y menos con mail() .. al menos por sockets directo por ejemplo con PHPMailer (http://phpmailer.sourceforge.net) que permite enviar el e-mail directamente por SMTP, ahí tendrás más control sobre el envio del e-mail .. incluso poder usar vários servidorees SMTP para "balancear" la carga del envio ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.