He montado una aplicación php que lee una base de datos y envía mails.
Debido a la complejidad de los filtros de envíos no he usado ninguna de las aplicaciones standard de mailing.
Actualmente el envío masivo lo hago usando sentencias mailphp normales con un bucle.
Actualmente estoy enviando entre 50 y 200 mails de golpe y creo que no debería hacerlo como lo hago.
Creo que lo que debo hacer es:
1. Guardar los mails en una table de mysql
2. Ejecutar un php que:
a) Lea un registro (si hay)
b) Envia por mail
c) Guarda el registro donde toca de otra tabla
d) Elimina el registro de la tabla temporal
3. Para esto imagino que el sistema, cuando se activa el proceso de envío del mailing, debería de activar un cron en el cpanel que ejecute el php.
4. imagino también que cuando no hay registros el php debería desactivar el proceso cron para que no lea la tabla de mails pendientes si no es necesario.
Es posible todo esto?? Alguien me puede guiar?? No he hecho esto jamas.
Tomás
URL del sitio: Contenido solo visible a usuarios registrados
Hola
Si, efectivamente, es mejor tener tus correos en una especie de cola de envío, y que tu script vaya tomando los correos de esa cola para que sean enviados y marcar los que se han enviado.
No es necesario que desactives el cron, el cron se puede seguir ejecutando y verificar que no hay nada que enviar.
La configuración de tu script puede ser por hora, por ejemplo envíar 50 correos cada hora.
Desde foro sólo podemos darte generalidades ya que no atendemos este tipo de problemas de programación.
Saludos
OK, pero solo 2 dudas.
Puedo activar o desactivar un cron desde la web??
Es posible hacer que sea 5 mails x minuto?? siempre que el cron no esté cada minuto mirando si hay datos.
Lo ideal sería mandar un script desde la web avisando que active el cron.
y que el mismo script si no hay más mails desactive el proceso cron.
Son comunicados que envio una vez al mes y no veo necesario un cron siempre en marcha. debe consumir mucho proceso.
Tomás
Hola
La pregunta es por que quieres desactivar el cron?
El cron es algo que gestiona tu propia cuenta, y al menos hasta donde conozco, no tiene API para activarlo o desactivarlo.
El cron ejecuta una sentencia, en tu caso ejecutará una url haciendo referencia a tu archivo .php
Este archivo al ser llamado verifica si hay mails en cola, es asi como funciona, cada vez que se llama cada X tiempo se llama a la url y se ejecuta el archivo.
El cron debería programarse como mínimo cada hora para envío de correos, no le veo mucho sentido cada minuto. El proceso de envíos es en lotes es por eso que te comente por ejemplo hasta 50 correos por hora.
Saludos.
ah, ok
Pues mirare de montar uno mañana y lo activare desde el cpanel.
Ya os contaré.
Muchas gracias.