Foros del Web » Programando para Internet » PHP »

Mailing

Estas en el tema de Mailing en el foro de PHP en Foros del Web. Hola gente. Les comento la situación. Estoy haciendo en PHP un sistemita que me permite enviar mailings a los usuarios de la base de datos. ...
  #1 (permalink)  
Antiguo 09/09/2004, 06:51
 
Fecha de Ingreso: abril-2004
Mensajes: 260
Antigüedad: 20 años
Puntos: 1
Mensaje Mailing

Hola gente.
Les comento la situación.
Estoy haciendo en PHP un sistemita que me permite enviar mailings a los usuarios de la base de datos.
La persona puede crear el mailing, editarlo, guardarlo y en el momento que quiera puede enviarlo. Ahora, tengo DOS grandes preguntas, una sencilla (creo) y otra no tanto.
Primero: Cuanto tiempo tarda en llegar un mail que envio con la funcion mail() a la casilla destino. Por que he notado que esto ha variado notablemente en distintas oportunidades. Que es lo que establece el tiempo de llegada y de partida del mail?.

Segunda pregunta:
La base de datos tiene aproximadamente 17.000 usuarios registrados a los cuales habría que enviarles el mailing. Supongo, que si meto en un bucle todo eso el servidor va a explotar (jejeje).
Lo que se me había ocurrido es enviar de a 100 o de menos, pausar y luego seguir enviando.
Mi pregunta es, existe alguna funcion que me permita hacer esto?. Puedo generar una pausa y cuando se terminen de enviar los x mails que siga con los restantes?. Es cierto lo que digo de que el servidor puede colapsar por la ejecucción continua de la misma función?.

Bueno, ese el el planteo del día.
Les agradezco mucho a todos, saludos.
__________________
:serio: :adios:
  #2 (permalink)  
Antiguo 09/09/2004, 07:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
1º) .. No depende de mail() el envio efectivo del mail sino de tu "MTA" que uses (el servidor SMTP o el que use mail()). Te recuerdo que PHP físicamente no envia los e-mails vía mail() sino que es tu servidor SMTP o el "MTA" (Mail Transfer Agent) que uses el que hace dicho proceso final, incluido tiempos de "relay" (reintentos) y demás para intentar "entregar el e-mail" a su destinatario.

2º) PHP dá un tiempo máximo de ejecución para un script (el que use tu bucle y mail()) .. eso lo determina y puedes ajustar con la función: set_time_limit() (por defecto son 30 segundos).

Si sobrepasas ese tiempo y no lo autmentas .. PHP cortará la ejecución del script.

Hay mejores formas para enviar e-mails masivos desde PHP .. por ejemplo usando envio directo por SMTP par lo cual te puedes ayudar de la classe:

PHP Mailer
http://phpmailer.sourceforge.net

que te permite entre otras cosas usar vários servidores SMTP a la vez para "balancear" la carga del envio de N e-mails repariendolos entre los que indiques.

así aceleras notablemente el envio del e-mail final.

Si aun así quieres hacer una "pausa" en PHP puedes usar la función sleep() .. pero antes tendrás que dar más tiempo de ejecución a tu script: set_time_limit() y para el cálculo de cada cuantos e-mails hará el sleep() .. usa un contador bajo tu bucle de envio de e-mails y aplica (matemáticas) el módulo de una división.

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 21:54.