Problema con emails diarios.

Problema con emails diarios.

de Sebastian Otero -
Número de respuestas: 11

Hola buenos dias!!.. Soy nuevo por estos lados, ando con un problema que tengo que solucionar porque es importante para el curso.

Y es el envio de emails diarios, yo a todos los usuarios del moodle los edite desde la base de datos para que a todos les quede configurado en su perfil-> Tipo de resumen de correo: Por temas (correo diario solo con temas)

El envio de este tipo de email esta configurado desde: Servidor->email->Hora para enviar los mensajes resumen: 17hs

Y el cron.php se ejecuta cada una hora todos los dias, y el detalle de que proceso llega bien.

El tema que este tipo de emails no son enviados a todos los usuarios, que son alrededor de 5500 alumnos.

Probamos el envio de emails desde el perfil del usuario y esos llegan perfecto, sin duda la funcion email anda bien, pero por alguna razon que no sabemos los correos diarios no los esta enviando y es algo vital para el curso.

la version del moodle instalada es la 1.9.9 y tiene extra los condicionales nomas y se esta usando el servidor local para mandar los email.

Por las dudas esta corriendo con centos 5, php 5.3.6 y mysql 5.5.9

 

Alguien sabe que puede estar pasando??... Si falta alguna configuracion extra o el cron hay q correrlo con menos tiempo o algo parecido?

 

Agradezco cualquier ayuda.

 

Atte:

 

Otero, Sebastian.

Promedio de valoraciones: -
En respuesta a Sebastian Otero

Re: Problema con emails diarios.

de Wenceslao Fernández -

Hola sonrisa

¡¡¡5500 correos desde el mismo curso y mandados al mismo tiempo!!! Ese volumen de correos no lo tiene ni siquiera el curso más mumeroso de moodle.org. Probablemente no le de tiempo al cron a enviarlos, prueba a ampliar el tiempo de ejecución del script... pero sigue siendo un volumen enorme de correos.

Salu2

En respuesta a Wenceslao Fernández

Re: Problema con emails diarios.

de Sebastian Otero -

Si asi es 5500 alumnos tiene el curso.

Y era una de las opciones que yo manejaba, que al ser tantos correos se acabara el tiempo de ejecucion.

Pero no estaba seguro porq nose bien como el moodle envia los emails.. hay alguna forma que los segmente??

Mas alla de cambiar el tiempo de ejecucion que en si no es una solucion optima digamos, hay o conoces o alguien conoce alguna alternativa o configuracion o algo para que el moodle no intente enviar todos los emails juntos??

 

Desde ya muchas gracias por responder.

 

Saludos!!

En respuesta a Sebastian Otero

Re: Problema con emails diarios.

de Wenceslao Fernández -

Hola sonrisa

Que yo sepa sólo se puede cuando tienes configurado el correo por SMTP, donde sí es posible establecer lotes de mensajes para cada sesión, pero por PHP la verdad es que no tengo mucha idea, una configuración como la que tienes excede con mucho con lo que suelo trabajar. Te sugiero que pases la consulta al foro en inglés sobre hardware y rendimiento.

Salu2

En respuesta a Wenceslao Fernández

Re: Problema con emails diarios.

de Sebastian Otero -

Okey gracias por tus respuestas.

 

Ahora un ultimo intento, configuro el moodle con SMTP con la cuenta que tengo del hosting.

Lo que me decis de la sesion es esto: SMTP session limit ??

 

Por ejemplo le puedo poner un valor 100 y ver que pasa?..

 

Y seguramente estare preguntando en el foro de ingles.

 

Si podes sacame esta duda asi hago un ultimo intento con el smtp configurado con limite de session de 100. O el que vos me digas.

 

Muchas gracias por toda tu ayuda.

 

Saludos!!

En respuesta a Sebastian Otero

Re: Problema con emails diarios.

de Wenceslao Fernández -

Hola sonrisa

El problema con SMTP es que TODO el correo saldrá de la cuenta que tengas configurada, esto es, aparecerá el nombre del remitente, pero la dirección será la que tengas configurada por SMTP. En cuanto al tamaño del lote, es cuestión de hacer pruebas, pero a paquetes de 100 son 55 lotes...

Salu2

P.D. Si obtienes una respuesta a tus dudas no dejes de pasarte por aquí a comentarla.

En respuesta a Wenceslao Fernández

Re: Problema con emails diarios.

de Sebastian Otero -

Buenas...

La verdad que opte por una solucion parcial del tema.

Me arme un script que haga exactamente lo que hace el moodle al enviar los correos diarios. La corro con ajax y hago peticiones cada 10 segundos, enviando unos 100 emails.

La solucion es buena porq me envia todos los resumenes correctamente.

 

Lo malo es que al ser ajax no la puedo configurar con el crontab.. asique todos los dias lo tengo que correr desde el navegador.

Tarda unos 10 minutos asiq no es tanto.

Vere si puedo hacer otra solucion toda con php para que lo pueda configurar con el cron.

 

Por ahora me quedo con esto.

 

Desde ya muchas gracias por la ayuda.

 

Saludos!!

En respuesta a Sebastian Otero

Re: Problema con emails diarios.

de Lucas Bustamante -

tengo el mismo problema que vos! podrias compartir la solucion que empleaste? si es posible que se bien detallada asi quienes la necesitemos podamos emplearla.

desde ya un saludo cordial y muchas gracias por tu aporte.

En respuesta a Wenceslao Fernández

Re: Problema con emails diarios.

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda
Sé que esto tiene un año de antiguedad, pero como lo acabo de ver, aprovecho para dejarlo escrito por aquí, para quien lo lea en el futuro sonrisa

El ajuste de lote de envio de correos si se usa SMTP que meciona Wenceslao no hace lo que sugiere Wenceslao (que es lo que la mayoría de la gente presupone).

El parámetro smtpmaxbulk hace algo diferente. No es que envie como máximo un número determinado de mensajes antes de detenerse. Sino que envia hasta ese número de mensajes en la misma conexión SMTP antes de cerrarla y abrir una nueva para seguir enviando los mensajes.

Es decir, si se tiene 1000 mensajes para enviar y smtpmaxbulk ajustado a 400, se abrirá una conexión SMTP y se enviarán 400 mensajes seguidos, se cerrará la conexión SMTP, se abrirá una nueva inmediatamente (sin ningún tipo de espera), se enviarán 400 mensajes más, se cerrará la conexión y se abrirá una nueva (inmediatamente también) y se enviarán los 200 últimos mensajes. Es decir, se enviarán los 1000 mensajes en todo caso del tirón, sólo que en vez de abrir y cerrar 1000 conexiones SMTP (una por mensaje) se utilizarán sólo 3 (400 + 400 +200). Pero todo seguido sin pausas o esperas entre los envios.

Es decir, los mensajes no se encolan hasta la próxima vez que se ejecute el cron.php, sino que se envian siempre en el momento en que les toque.

Saludos.
Iñaki.
En respuesta a Iñaki Arenaza

Re: Problema con emails diarios.

de Adolfo Muñoz Aguilar -

Hola a todos, hola Iñaki

Aunque este post ya es antiguo se que no lo deja de dar dolores de cabeza a mas de uno, así que ahí va mi aporte:

Excelente explicación Iñaki, y muy buena información sobre todo para optimizar el envio de los correos, pero en instalaciones como la mía y sobre todo con algunas plataformas que todavía tengo la antigua versión 1.8 tuve que tomar acciones mas drásticas: NO HACER CRON.

El CRON de Moodle lo ejecuto desde un script con el PHPCli, es una macro que se ejecuta y después de un SLEEP de x minutos vuelve a ejecutarse. De todas y cuantas cambios y reconfiguraciones hice con el CRON, con script para ejecutar desde el CRON, de cambios en configuraciones del Moodle, ELIMINAR LA EJECUCIÓN EN CRON UNIX ha sido la única forma de controlar con éxito la demora del proceso. Es verdad que he hecho florituras de control de procesos, gestión de de testigos de ejecución exitosa del CRON, y siempre al final obtenía que había alguna vez que tardaba lo que no se podía uno imagina. Es decir si la ejecución "normal" podía finalizar en 1 minutos. Y una ejecución que se encontrase con un par de FOROS que notificar POST subía a 10 o 15 minutos. Con tres POST o algunos post de asignaturas mamotréticas (que existen) estos pasaban generosamente los 20 minutos (por supuesto hablo en la versión 1.8, en la 1.9 los tiempos casi se dividen por 8).

¿Como controlo la ejecución de mi NO-CRON?

La macro que ejecuta mi "NO-CRON" la lanzo desde un comando SCREEN de Linux, creando una sesión que llamo "moodle", una sintaxis como esta:

screen -s moodle miscript_no_cron 

Para los que no recuerden screen me permite crear una sesión o terminal virtual que permanece accesible desde cualquier parte, de manera que con el siguiente comando:

 screen -r moodle 

puedo ir viendo como va la ejecución de mi script desde cualquier conexión de terminal en el host, que como dije antes ejecuta via PHPCLI el cron de moodle, hace todos los controles que yo quiero y duerme un ratito antes de volver a ejecutarse.

That's All friends, muchas gracias por tragaros mi parrafada.