Hola a todos. Esta información es sumamente muy específica, pero puede que sea de utilidad a alguien; el caso es que, en Moodle, existe una sección de configuración para asignar una dirección para el envío de correos (notificaciones, mensajes, foros, notificación de envío de tareas, recordatorios, etc.); obviamente, ahí se parametriza la información SMTP saliente y otros detalles, pero no me centraré en eso… sino, en cómo cambiar la dirección de correo específicamente.
¿Para que les puede servir?, bueno, recordemos que en Moodle, dependiendo de la cantidad de usuarios de la plataforma, puede generar una gran cantidad de notificaciones por correo, y esto puede generar algún tipo de problema en el servicio de correo que se tenga (limite de envío de correos por día, por ejemplo); en ese caso, esta puede ser una alternativa para solventar el inconveniente.
Sea como sea, la forma de cambiar dicha dirección de correo (así como también cualquier otra configuración de moodle directamente desde la base de datos), es por medio de una instrucción SQL; pensándolo bien, es muy obvio (dado que toda la configuración se guarda en la base de datos), pero igual… les comparto la información.
Primero, les muestro la sección de configuración del correo saliente: Administración del sitio -> Extensiones -> Mensajes de salida -> Email
Como mencioné, las configuraciones SMTP saliente no es el caso aquí, me enfocaré en el parámetro «Nombre de usuario SMTP» (nombre de la configuración, en el campo name de la tabla mdl_config de la base de datos moodle: smtpuser) y el campo «Dirección ‘no-reply’» (nombre de la configuración en el campo name de la tabla mdl_config de la base de datos moodle: noreplyaddress).
Si, esta algo confuso como lo expresé anteriormente, les muestro un query habla más que mil palabras:
select * from mdl_config where name in ('noreplyaddress','smtpuser');
Donde:
- mdl_config -> Nombre de la tabla donde se guardan las configuraciones
- name -> Nombre del campo que almacena los nombres de las configuraciones
- noreplyaddress & smtpuser -> Nombre de las configuración de moodle
Al ejecutar la línea de comando en MySQL (puede usar phpmyadmin, el comando mysql, etc.), debería devolverle algo así:
La dirección de correo que se nos muestra en el campo value , debería de ser la misma que está en la sección de configuración mencionada anteriormente.
Lo que se debe de hacer entonces, es un UPDATE directo a esos campos para cambiar la dirección de correo saliente y eso sería todo. Si se desea cambiar otros parámetros (nombre de servidor SMTP, seguridad, etc.), ya solo sería de ir a la sección de configuración del webgui, buscar en el nombre de la opción, y abajo, aparece el nombre del valor con el cual se puede hacer la búsqueda en la tabla/campo mencionada (misma lógica).
Propiamente, la sentencia SQL para hacer el UPDATE sería algo así:
update mdl_config set value = 'correo@midominio.com' where name in ('noreplyaddress','smtpuser');
y eso sería todo; al revisar la sección de configuración de correo saliente del webgui, tendría que estar tal y como lo definimos a nivel de base de datos.
¿Se puede automatizar esto?, claro que sí; basta con crear un cron job en el crontab. Sería algo así:
sudo crontab -e
0 12 * * * mysql -u usuario -pClave nombre-bd -Bse "update mdl_config set value = 'correo@domain.com' where name in ('noreplyaddress','smtpuser');"
En el ejemplo anterior, se estaría ejecutando todos los días a las 12 del medio día.
Para más información sobre la ejecución de una sentencia SQL de MySQL en una sola línea de comando, remitirse a esta entrada de blog.
Para más información sobre el uso del crontab (tarea programadas en GNU/Linux), remitirse a esta entrada de blog.
Bien espero que la información le sea de ayuda. Saludos.