proceso cron enviar mails  

 
Thomas
 Thomas
Reputable Member

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

Citar
Respondido : 19/09/2016 5:20 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

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

Si nuestra ayuda te sirve déjanos tu testimonio y mejora así el posicionamiento de tu web:
Enviar mi Testimonio
¡Gracias!.

ResponderCitar
Respondido : 19/09/2016 10:49 pm

Cursos Gratuitos WordPress

Thomas
 Thomas
Reputable Member

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

ResponderCitar
Respondido : 19/09/2016 11:10 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

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.

Si nuestra ayuda te sirve déjanos tu testimonio y mejora así el posicionamiento de tu web:
Enviar mi Testimonio
¡Gracias!.

ResponderCitar
Respondido : 19/09/2016 11:52 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Thomas
 Thomas
Reputable Member

ah, ok

Pues mirare de montar uno mañana y lo activare desde el cpanel.

Ya os contaré.

Muchas gracias.

ResponderCitar
Respondido : 20/09/2016 12:07 am

Por favor Iniciar Sesión o Registro