No envia correos | Error: lib/moodlelib.php email_to_user(): SMTP connect() failed

No envia correos | Error: lib/moodlelib.php email_to_user(): SMTP connect() failed

de Marcos SarLo -
Número de respuestas: 4
Imagen de Moodlers de gran ayuda

Hola comunidad,

Tengo una plataforma en la que desde hace unos días estamos experimentando problemas en el envío de correos cuando se crean foros y cuando suben o califican tareas, es decir, no llegan los mensajes, pero es aleatorio, es decir, algunas veces llegan y otras veces no.

Por ejemplo, cuando se envía algo por el foro, el mensaje a veces no llega a nadie y otras veces sólo a algunos, en este ejemplo, esto muestra el cron:

Sending messages to invitado (178)
Error: lib/moodlelib.php email_to_user(): SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
 Post 4131 sent
 Sent 1 messages with 0 failures

 Sending messages to profe1 (4)
  Post 4131 sent
Sent 1 messages with 0 failures

Sending messages to profe2 (2)
  Post 4131 sent
Sent 1 messages with 0 failures

De ello al usuario invitado no le llegó el email, pero a los otros dos usuarios, sí.

La versión actual de Moodle actualizada es la 3.7.4 (Build: 20200113) (lo actualicé la semana pasada desde la versión 3.7.3 y antes de la 3.6)

La configuración del correo saliente está con:

Servidor SMTP: mail.midominio.com
Seguridad SMTP: ninguna
Nombre de usuario SMTP: usuario@ midominio.com
Contraseña SMTP: miclave
Límite de sesión SMTP: 1

La plataforma está en un hosting compartido, anteriormente, no se tuvo ningún problema parecido a este.

El cron, se ejecuta cada 10 minutos (antes era cada 5 minutos)

No sé qué pueda estar pasando, cualquier información que me ayude a resolverla, estaré muy agradecido me la puedan brindar

Saludos.
Marcos.

Promedio de valoraciones: -
En respuesta a Marcos SarLo

Re: No envia correos | Error: lib/moodlelib.php email_to_user(): SMTP connect() failed

de Juan Pablo Miranda Aguayo -
Imagen de Moodlers de gran ayuda

Hola, Marcos.

No utilizo las versiones 3.6 ó 3.7; te comento desde la experiencia con 3.5 y 2.7 que son las plataformas que actualmente vengo utilizando.

Asumiendo que el servicio de correo que utilizas es medianamente fiable, te puedo plantear las siguientes consideraciones:

1. Que de 3 correos salientes, 2 hayan llegado correctamente y 1 no, significa que la configuración básica está correcta.

2. Antes, con el CRON corriendo cada 5 minutos, no había errores. Ahora, con el CRON cada 10 minutos, falla un envío de 3...

Aquí, hay que tener en cuenta que si se reduce la frecuencia de llamadas a CRON, aumenta el número de actividades que Moodle debe llevar a cabo de una vez.

3. El "Límite de sesión SMTP" lo tienes en "1".

Según la explicación de Moodle para esa configuración, dice lo siguiente: "Número máximo de mensajes enviados por sesión SMTP. La agrupación de mensajes puede agilizar el envío de emails. Valores inferiores a 2 fuerzan la creación de una nueva sesión SMTP para cada email." Por tanto, se está obligando a conectarse y registrarse en el servidor de correo saliente de tu proveedor una vez por cada correo que se quiere enviar."

Es posible que tu proveedor tenga configurado su servidor de correo saliente con alguna clase de retardo para no atender o rechazar TODAS las llamadas desde la misma cuenta y evitar saturarse. Ten en cuenta que hablamos de un servidor compartido (no me refiero al servidor web o hosting, sino al servicio de correo), que puede tener cientos de usuarios, cada uno enviando cualquier cantidad de correos.

Aunque también los servidores de correo saliente se configuran para evitar el SPAM, es posible que 25 correos se puedan enviar de una sola vez con un único login sin que se considere envío masivo o SPAM.

Por lo tanto, ese ajuste, en lugar de dejarlo en "1", que es como viene por defecto, se podría aumentar a 10, 15, 20, etc. en función del número de mensajes que se puedan enviar de una sola vez con un único login (este dato lo puede confirmar tu proveedor de correo-e).

Por ejemplo, en mi caso, en una plataforma 2.7 le tengo configurado con 25, donde hay unos 250 usuarios que participan en varios foros y no he tenido noticias de errores en el envío de correo saliente. Igualmente, en esta plataforma, el CRON corre cada 5 minutos.

De la misma forma, tengo configuradas otras plataformas con versiones 3.5, aunque estas no soportan tanto tráfico de correo saliente.

Si consigues un ajuste óptimo que evite estos errores, te agradecería lo compartieras.

Saludos, y suerte.

JP

 

En respuesta a Juan Pablo Miranda Aguayo

Re: No envia correos | Error: lib/moodlelib.php email_to_user(): SMTP connect() failed

de Marcos SarLo -
Imagen de Moodlers de gran ayuda
Gracias por responder Juan Pablo,
Viendo la forma de tener más detalles del error al enviar los mensajes, logré el siguiente:

2020-01-27 22:54:57 Connection: opening to mail.midominio.net:25, timeout=300, options=array()
2020-01-27 22:54:57 Connection: opened
2020-01-27 22:54:57 SERVER -> CLIENT: 421 Too many concurrent SMTP connections; please try again later.
2020-01-27 22:54:57 CLIENT -> SERVER: EHLO www.midominio.net
2020-01-27 22:54:57 SERVER -> CLIENT:
2020-01-27 22:54:57 SMTP ERROR: EHLO command failed:
2020-01-27 22:54:57 SMTP NOTICE: EOF caught while checking if connected
2020-01-27 22:54:57 Connection: closed
2020-01-27 22:54:57 SMTP Error: Could not authenticate.
2020-01-27 22:54:57 SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting


Encontré en una parte que dice: 
Authentication failures: You have specified authentication without encryption
No se si eso tiene que ver con la Seguridad SMTP, ya que la tenía en ninguna, ahora la he puesto en SSL
Así mismo, de acuerdo a tu comentario de El "Límite de sesión SMTP" lo tienes en "1", ahora lo tengo en 15...

En todo caso, la actual configuración de mi Configuración de correo saliente, es la siguiente:

Servidor SMTP: mail.midominio.com:465
Seguridad SMTP: SSL
Nombre de usuario SMTP: usuario@ midominio.com
Contraseña SMTP: miclave
Límite de sesión SMTP: 15

Estoy haciendo pruebas y aparentemente todo está marchando bien, espero que siga así, de lo contrario te comento.

Muchas gracias por tus comentarios, me han servido de mucho.

Saludos.
Marcos.



En respuesta a Marcos SarLo

Re: No envia correos | Error: lib/moodlelib.php email_to_user(): SMTP connect() failed

de Farid Astorga -

Estimado amigo Marcos,

Quería consultarte como haces para ver ese detalle de errores. Me interesa conocer en detalle qué es lo que está sucediendo con la conexión al SMTP para el envío de mensajes.

Un abrazo.

En respuesta a Farid Astorga

Re: No envia correos | Error: lib/moodlelib.php email_to_user(): SMTP connect() failed

de Jose Luis Martin Jimenez -
Imagen de Moodlers de gran ayuda
Hola, Farid.
Se activa desde aquí: Administración del sitio > Desarrollo > Depurando
(y ahí marcar "Depurar envío de emails")

Puedes consultar la documentación oficial sobre "debugging": https://docs.moodle.org/38/en/Debugging#Debug_email_sending

Saludos