Envio de correos en la mensajeria.

Envio de correos en la mensajeria.

de Raul Garcia Canet -
Número de respuestas: 6
Hola a todos,

Desde que los servidores de correo(la mayoría) requieren autenticación TLS para mandar los correos, he notado que el sistema de mensajeria se vuelve ineficiente.

Que quiero decir con esto:
Bueno, cuando envías un mensaje a varios usuarios, y no estan en linea, se genera un correo con ese mensaje que se envía a cada uno de ellos. Si son bastantes, el proceso de envío se hace eterno ya que, para cada mensaje, se requiere autenticación TLS contra el servidor y este proceso tarda bastante. Mi pregunta es:
¿Se podría otimizar el envío de correos de mensajería para que se hiciera por lotes, al igual que se hace con los foros?.
Es decir, dejar la tarea de envio de correos al cron y que éste haga los envíos de los correos en segundo plano o agrupando los correos en paquetes de 5, por ejemplo.
No se, aguna cosa que agilizara este paso, sino, cuano mandas mensajes a muchos usuarios, el sistema se vuelve demasiado lento y puede hacer que alguno de los tiempos de ejecución de scripts los servidores (sobretodo apache) termine antes de enviar todos los mensajes, lo cuál provoca que se queden mensajes sin enviar.
Es una sugrencia, para ver cómo se podría hacer esto, si hay alguna otra solución o si a alguien se le ocurre alguna cosa.

Hasta pronto,
Salu2
J. Raul (juagarc4) guay
Promedio de valoraciones: -
En respuesta a Raul Garcia Canet

Re: Envio de correos en la mensajeria.

de Ricardo Barrientos Burgué -
Estimado Juan Carlos:

Sugiero activar y configurar en tu Moodle, la opción de Servidores SMTP para el envio de correos.

Esta se encuentra en Menú Administrador -- Servidor -- Email --

Saludos cordiales
En respuesta a Ricardo Barrientos Burgué

Re: Envio de correos en la mensajeria.

de GERARDO BECERRA YAÑEZ -
tengo el problema que ningun usuario de hotmail me recibe correos, de confirmacion o reenvio de contraseñas. Al parecer estoy bloqueado por los servidores de hotmail, hay algo que hacer al respecto? como se hacer para optimizar el envio de correos y no parecer como spam siempre, en los mensajes que enviamos desde nuestro portal. A alguno de uds le pasa lo mismo ?? mil gracias por su atención y estaré atento a su respuesta..
En respuesta a Raul Garcia Canet

Re: Envio de correos en la mensajeria.

de Boris Montesino -
Hola Juan, también llevo días tratando de encontrar la solución al inconveniente que se presenta cuando el docente quiere enviar en mensaje a todo el grupo, tengo instalada la última versión de Moodle y está tarda mucho tiempo en gestionar el envío de la copia del mensaje a los correos de los estudiantes.. en algunos momentos nos ha tocado cancelar el proceso. Sería interesente poder programar esta actividad en el cron.

En respuesta a Boris Montesino

Re: Envio de correos en la mensajeria.

de Xavier Paz -
Como bien dice Ricardo, entre las opciones del servidor de corre, hay una llamada Límite de sesión SMTP, que establece el número máximo de mensajes enviados por sesión SMTP. Por defecto el valor es 1, así que supongo que los manda de uno en uno. Si aumentas dicho valor, los mandará en "lotes".

En cuanto al tema de programarlo por cron, no sería dificil pero no sé si el tema de la mensajería está implementado como módulo o como entidad independiente (como pasa con curso o usuario)
En respuesta a Xavier Paz

Re: Envio de correos en la mensajeria.

de Boris Montesino -
Xavier, gracias por responder el mensaje, ya había analizando la posibilidad de cambiar el Limite de sesión SMTP, inclusive la tengo configurada con el valor de 100. Ya he le dado muchas vueltas al asunto.
En respuesta a Boris Montesino

Re: Envio de correos en la mensajeria.

de Xavier Paz -
En ese caso, tendrás que echar un vistazo al código. Yo empezaría por message/lib.php que contiene las acciones y funciones asociadas a la gestión y envío de mensajes. Más concretamente, me fijaría lo que hacen las funciones message_post_message() que guarda el mensaje en la base de datos, y si es pertinente manda las notificaciones.

Observando el código, deduzco que manda un correo por cada nuevo mensaje que se envía y lo almacena en la base de datos. Habría que introducir un nuevo parámetro y llevar un contador, para que cuando se cumpla el cupo establecido (digamos que se establece el envío de correos cada 50 mensajes), se manden los correos.

Esto implicaría varias cosas, como separar en la función message_post_message() la parte de guardar el mensaje en base de datos de la parte de envío del correo. Es decir, habría que crear una nueva función llamada notificar_mensaje, por ejemplo.

De este modo podría guardar los mensajes, y solo notificarlos cuando se considere necesario. Separas las tareas y obtienes mayor control sobre ambas. Además, te permitiría poder llamar a la función de notificación de mensajes desde el cron, que en el fondo es lo que quieres.

A raíz de esto, también estaba pensado que es posible que el cuello de botella no esté en el servidor de Moodle sino en la base de datos. Personalmente monitorizaría distintos parámetros del servidor y la base de datos, para asegurarme de localizar el problema de manera adecuada.