PHPList y su utilizacion con Cronjobs
Última actualización el Miércoles, 19 de Mayo de 2010 08:20
PHPList es quizás una de las mejores herramientas para el procesamiento de listas de correo de marketing o envio de correo masivo.
Soporta listas muy grandes, con una interface web sobria pero adecuada al trabajo del administrador, no duplica mensajes, con un buen soporte de templates, internacionalización, y procesa los rebotes de correos que ya no son validos.
Pero lo más importante y que desconocen muchos usuarios, es que es una herramienta diseñada para ser respetuoso con los demás usuarios del servidor, ya que permite el control de carga, el uso de tareas cron, para procesar las colas de mensajes y de rebotes.
Además de ser respetuoso con los servicios de un hosting compartido y podemos un uso eficiente, ya que obviar el respeto por los demás usuarios de un servidor compartido (shared hosting), nos coloca en mala situación frente a la gran mayoría de servicios de correo gratuito, e incluso servidores corporativos o compartidos como los nuestros que limitan el acceso temporalmente a otros servidores de correo, cuando estos envía cientos de correo en un plazo de tiempo corto.
Si trabajamos con los cron jobs y ajustamos bien nuestros valores, no solo seremos respetuosos, sino que seremos eficientes.
Vamos a mostraros el camino.
Configuracion de config.php
Buscaremos los valores descritos y los cambiaremos por los nuestros, ajustandolos a nuestras necesidades.
# Si ponemos a 0 no podremos procesar los rebotes desde la página de nuestro PHPList
02.# Es aconsejable cuando tenemos un cron ponerlo a 0 ya que lo procesara el cron
03.# Consultar README.commandline
04.define("MANUALLY_PROCESS_BOUNCES",0);
05.
06.# Igual que el anterior, el valor a 0 elimina la posibilidad de usar la interface web
07.# para procesar los colas.
08.define("MANUALLY_PROCESS_QUEUE",1);
09.
10.# Define la cantidad de mensajes de correo electrónico que desea enviar en cada período de
11.# tiempo. Si el valor es 0, el procesamiento por lotes se desactiva y los mensajes
12.# se envian tan rapido con sea posible.
13.define("MAILQUEUE_BATCH_SIZE",100);
14.
15.# 100 x 6 (1o minutos de cada periodo)= 600 hora
16.define("MAILQUEUE_BATCH_PERIOD",600); # 10 minutos
17.
18.# Periodo en tiempo de cada procesamiento. No debe superar el max PHP Timeout ->
19.# max_execution_time en php.ini
20.define('MAILQUEUE_THROTTLE',1);
21.
22.# Domain Throttling
23.# Activado (1) define la cantidad de correos que quieres enviar a cualquier dominio en
24.# un número de segundos. Esto te permitirá no enviar grandes cantidades de correo
25.# en corto espacio de tiempo al mismo dominio, lo que puede ser una causa de bloqueo
26.# en el sistema de destino, como lo es por ejemplo, aol.com, hotmail.com, yahoo.com,
27.# gmail.com. Con esto evitarÁs que tu lista bloquee la Ip del servidor, lo cual es,
28.# beneficioso para ti o para los demás usuarios. En el ejemplo propuesto se enviaría
29.# un máximo de 1 mensaje cada minuto al mismo dominio.
30.define('USE_DOMAIN_THROTTLE',1);
31.define('DOMAIN_BATCH_SIZE',1);
32.define('DOMAIN_BATCH_PERIOD',60);
33.
34.# Puede ocurrir que la lista de direcciones a un determinado servidor sea muy elevada,
35.# lo cual puede hacer que la cola tenga que procesarse muchas veces y durante
36.# mucho tiempo. Con esta opción le pedimos a PHPList un simple tiempo de espera (delay)
37.# entre mensajes para incrementar el número de mensajes enviados por cola.
38.# La opción es ejecutar múltiples veces por hora la tarea cron que se recomienda cada
39.# 10 ó 15 minutos
40.define('DOMAIN_AUTO_THROTTLE',1);
# Si ponemos a 0 no podremos procesar los rebotes desde la página de nuestro PHPList
02.# Es aconsejable cuando tenemos un cron ponerlo a 0 ya que lo procesara el cron
03.# Consultar README.commandline
04.define("MANUALLY_PROCESS_BOUNCES",0);
05.
06.# Igual que el anterior, el valor a 0 elimina la posibilidad de usar la interface web
07.# para procesar los colas.
08.define("MANUALLY_PROCESS_QUEUE",1);
09.
10.# Define la cantidad de mensajes de correo electrónico que desea enviar en cada período de
11.# tiempo. Si el valor es 0, el procesamiento por lotes se desactiva y los mensajes
12.# se envian tan rapido con sea posible.
13.define("MAILQUEUE_BATCH_SIZE",100);
14.
15.# 100 x 6 (1o minutos de cada periodo)= 600 hora
16.define("MAILQUEUE_BATCH_PERIOD",600); # 10 minutos
17.
18.# Periodo en tiempo de cada procesamiento. No debe superar el max PHP Timeout ->
19.# max_execution_time en php.ini
20.define('MAILQUEUE_THROTTLE',1);
21.
22.# Domain Throttling
23.# Activado (1) define la cantidad de correos que quieres enviar a cualquier dominio en
24.# un número de segundos. Esto te permitirá no enviar grandes cantidades de correo
25.# en corto espacio de tiempo al mismo dominio, lo que puede ser una causa de bloqueo
26.# en el sistema de destino, como lo es por ejemplo, aol.com, hotmail.com, yahoo.com,
27.# gmail.com. Con esto evitarÁs que tu lista bloquee la Ip del servidor, lo cual es,
28.# beneficioso para ti o para los demás usuarios. En el ejemplo propuesto se enviaría
29.# un máximo de 1 mensaje cada minuto al mismo dominio.
30.define('USE_DOMAIN_THROTTLE',1);
31.define('DOMAIN_BATCH_SIZE',1);
32.define('DOMAIN_BATCH_PERIOD',60);
33.
34.# Puede ocurrir que la lista de direcciones a un determinado servidor sea muy elevada,
35.# lo cual puede hacer que la cola tenga que procesarse muchas veces y durante
36.# mucho tiempo. Con esta opción le pedimos a PHPList un simple tiempo de espera (delay)
37.# entre mensajes para incrementar el número de mensajes enviados por cola.
38.# La opción es ejecutar múltiples veces por hora la tarea cron que se recomienda cada
39.# 10 ó 15 minutos
40.define('DOMAIN_AUTO_THROTTLE',1);
Cron configuracion
En el caso de añadirlo desde el shell (ssh :: Como usar SSH en Islaserver) deberemos añadirlo cambiando los valores entre <> (la barra \ indica un retorno de carro que debe eliminarse. Se hace para evitar el efecto no deseado del formato web.
*/10 * * * * lynx -dump '/admin/index.php?page=processqueue&login=&password=' > phplist.processqueue.html
2.35 * * * * lynx -dump '/admin/index.php?page=processbounces&login=&password=' > phplist.processbounces.html
*/10 * * * * lynx -dump '/admin/index.php?page=processqueue&login=&password=' > phplist.processqueue.html
2.35 * * * * lynx -dump '/admin/index.php?page=processbounces&login=&password=' > phplist.processbounces.html
Si usamos Cpanel deberemos añadir una a una las dos tareas introduciendo los valores adecuados
No hay comentarios:
Publicar un comentario
Nos interesa tu opinión Dejanos tu comentario sobre este artículo