10/01/2003, 22:27
|
| Colaborador | | Fecha de Ingreso: noviembre-2001 Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 23 años, 2 meses Puntos: 69 | |
En mi trabajo mandamos un newsletter semanal a unos 80.000 usuarios, y para ello utilizo solo Apache, PHP, función mail() y mySQL.
Lo que hice, fue adaptar un viejo código, por lo que está bastante ( bastante mucho diría yo ) poco optimizado, por lo que pienso que optimizándolo podría soportar muchisimos usuarios más.
EL lo basé en dos conceptos :
1) Paginación de resultados, para no tener problemas con los Time_limits del ejecución del PHP
2) El usuario no necesita que aparezca la dirección TO: en su email, por lo que puedo utilizar la cabecera CCO:
Entonces, lo que hago es sacar los primeros 200 mails de la base, armar el email, colocar las 200 direcciones dentro del CCO (separándolas por comas) y cada página envía solo 1 email, con los 200 CCO.
Así, cuando carga la aplicación, automáticamente se llama a si misma, pidiendo la siguiente "página" de resultados, obteniendo los siguientes 200 emails, y enviando 1 email.
De esta manera, la aplicación funciona correctamente y completa el envío de los 80.000 emails en algo así como 1 hora.
Para esto estoy utilizando la función mail() de PHP, ya que por cada vez que la pagina carga, envía 1 solo email, pero podría estar utilizando alguna clase que trabaje directamente con sockets y un server SMTP, lo cual aceleraría considerablemente las cosas al enviar Varios emails sin cerrar la conexion con el server ( cosa que la funcion mail() hace ).
Espero que esta mini Guía de como envío yo los newsletters te sirva. Cualquier punto que quieras que te aclare o que quieras profundizar, me avisas.
Saludos. |