Mail icon

Mail

Maintained by Marc Català, Albert Gasset
Internal course messaging with a webmail-like interface
Price option: Free

Supports Moodle 2.3-5.2 See all versions
Latest release: 2 months ago
Installations: 3837
Downloads (last 90 days): 696

Frankenstyle name: local_mail
Local plugins

Comments

Comments are no longer open for new posts. Existing comments remain available to read.

Hello!
I previously tested local_mail on a 5.3 dev version. The following error message appears during the installation of local_mail.
Fehler in der Kodierung gefunden, den nur Programmierer/innen korrigieren können: Deprecation: external_format_string has been deprecated since 4.4. Use \core_external\util::format_string instead. See MDL-76583 for more information.
Debug info:
Error code: codingerror
Stack trace:
line 273 of /public/lib/classes/deprecation.php: core\exception\coding_exception thrown
line 150 of /public/lib/classes/deprecation.php: call to core\deprecation::emit_deprecation_notice()
line 66 of /public/lib/externallib.php: call to core\deprecation::emit_deprecation()
line 246 of /public/local/mail/classes/external.php: call to external_format_string()
line 110 of /public/local/mail/lib.php: call to local_mail\external::get_courses_raw()
line 3189 of /public/lib/classes/output/core_renderer.php: call to local_mail_render_navbar_output()
line 238 of /vendor/mustache/mustache/src/Context.php: call to core\output\core_renderer->navbar_plugin_output()
line 157 of /vendor/mustache/mustache/src/Context.php: call to Mustache\Context->findVariableInStack()
line 72 of /var/moodledata/localcache/mustache/1784011018/boost/__Mustache_33896a12b95f244d11283b01e86bb215.php: call to Mustache\Context->findDot()
line 38 of /var/moodledata/localcache/mustache/1784011018/boost/__Mustache_eb8eeb35edfacc3efa9f151f3df010df.php: call to __Mustache_33896a12b95f244d11283b01e86bb215->renderInternal()
line 71 of /vendor/mustache/mustache/src/Template.php: call to __Mustache_eb8eeb35edfacc3efa9f151f3df010df->renderInternal()
line 191 of /public/lib/classes/output/renderer_base.php: call to Mustache\Template->render()
line 122 of /public/theme/boost/layout/drawers.php: call to core\output\renderer_base->render_from_template()
line 1036 of /public/lib/classes/output/core_renderer.php: call to include()
line 952 of /public/lib/classes/output/core_renderer.php: call to core\output\core_renderer->render_page_layout()
line 86 of /public/admin/registration/index.php: call to core\output\core_renderer->header()
Best regards,
Friedhelm
Hola Marc,
Gracias por las indicaciones, hemos podido resolver el problema correctamente.
Saludos
Hola, Tamara,
El problema que indicas pasa cuando se utiliza el paquete de idioma ca_wp (Workplace), que define la cadena localecldr como ''. Hemos detectado que otros idiomas en la variante Workplace padecen el mismo problema.
Una solución rápida es modificar la cadena localecldr desde Personalización del idioma en Administración, seleccionáis el paquete ca_wp, en componentes seleccionad langconfig.php y en identificador de cadena ponéis localecldr, pulsáis en el botón Mostrar cadenas y en el campo de texto Traducción local personalizada poned ca-ES, guardáis y ya os funcionará local_mail con el idioma catalán.
Reportaremos el problema a Moodle para que solucionen las cadenas de idiomas erróneas detectadas en los paquetes de idioma de Workplace.
Saludos
Hola,
Hemos detectado un bug en el plugin local_mail que provoca que la bandeja de entrada deje de responder completamente (se queda en un bucle de carga infinito) cuando el idioma preferido del usuario está configurado en catalán (ca).
Pasos para reproducir:
Configurar el idioma preferido del usuario en catalán
Acceder a la bandeja de entrada de local_mail
La bandeja se queda atascada en un bucle de carga infinito
Comportamiento esperado: La bandeja de entrada debería cargarse con normalidad independientemente del idioma del usuario.
Comportamiento actual: La bandeja nunca llega a cargar y se queda en un bucle. Cambiar el idioma a español o inglés resuelve el problema de inmediato.
Causa raíz identificada:
El problema está en la función formatNumber ubicada en local/mail/svelte/src/lib/utils.ts:
export function formatNumber(number: number): string {
return new Intl.NumberFormat(window.M.str.langconfig.localecldr).format(number);
}
El constructor Intl.NumberFormat no gestiona correctamente la cadena de locale proporcionada por Moodle para el catalán (window.M.str.langconfig.localecldr), lo que provoca un error en tiempo de ejecución que rompe todo el renderizado de la bandeja de entrada.
Entorno: Moodle con el plugin local_mail, probado en los navegadores Chrome y Edge.
Gracias por vuestro trabajo en este plugin. Esperamos que este reporte os ayude a solucionar el problema.
Un saludo
Hi Does this link to any notification setting so that someone knows there is another email? Better yet, can it be automatically forwarded to someones email?
Hi there and congratulations on your amazing extension. Unluckily when upgrading from 1.9.13 to 2.15 on a moodle 4.1 with PHP7.4 I get the following error and installation get corrupted and unsable. Any idea about reason and how to fix? Thanks in advance.
-------------------------------------------------------------------------
Error escribiendo a la base de datos
Más información sobre este error
Información de depuración: Column 'courseid' cannot be null
UPDATE mdl_local_mail_message_users mu SET courseid = (SELECT m.courseid FROM mdl_local_mail_messages m WHERE m.id = mu.messageid), draft = (SELECT m.draft FROM mdl_local_mail_messages m WHERE m.id = mu.messageid), time = (SELECT m.time FROM mdl_local_mail_messages m WHERE m.id = mu.messageid)
[array (
)]
Error code: dmlwriteexception×Descartar esta notificación
Trazado de la pila (stack):
line 497 of /lib/dml/moodle_database.php: dml_write_exception thrown
line 293 of /lib/dml/moodle_read_slave_trait.php: call to moodle_database->query_end()
line 1176 of /lib/dml/mysqli_native_moodle_database.php: call to mysqli_native_moodle_database->query_end()
line 197 of /local/mail/db/upgrade.php: call to mysqli_native_moodle_database->execute()
line 784 of /lib/upgradelib.php: call to xmldb_local_mail_upgrade()
line 1953 of /lib/upgradelib.php: call to upgrade_plugins()
line 721 of /admin/index.php: call to upgrade_noncore()
Good morning, thank you for your work on this very useful plugin for communication between Moodle users. I'm writing because we recently noticed that the Moodle app won't open documents attached to emails, even small ones. It tries to open the document's URL but fails to load. However, it does open it from the same mobile device, but only if you access the platform via a browser. could you help us with this issue? We have Moodle 4.1 and the latest version of the app and plugin. Thanks in advance.
Hello everyone,
the problem with accessing the mails in the inbox still exists for the users of our platform (see post from Feb 24, 2025). Some users are unable to access their inbox. However, a different error message now appears:
Error found in coding that only programmers can correct: User id is required when printing user avatar image.
Here is the detailed information to it:
Error code: codingerror
* line 100 of /lib/classes/output/user_picture.php: core\exception\coding_exception thrown
* line 220 of /local/mail/classes/user.php: call to core\output\user_picture->__construct()
* line 577 of /local/mail/classes/external.php: call to local_mail\user->picture_url()
* line 520 of /local/mail/classes/external. php: call to local_mail\external::search_messages_response()
* line ? of unknownfile: call to local_mail\external::search_messages()
* line 253 of /lib/external/classes/external_api.php: call to call_user_func_array()
* line 83 of /lib/ajax/service.php: call to core_external\external_api::call_external_function()
Can someone help us out, please?
Hello!
We use local mail in our Moodle - thank you for this plugin!
We're experiencing the following issue when trying to manage emails in the app: If a user opens the local mail icon in the app, they are redirected to the website. No one can view emails directly in the app.
Is there an option that can be enabled?
Thank you for your help!
Hello everyone,
For some time now, there has been an increasing problem that some users on our platform can no longer access their mail inbox.
The following error message appears: User with ID 0 not found.
We have not yet been able to localize the cause. Unfortunately, the problem can currently only be solved by deleting all mail content which is not satisfying.
I hope you guys can help us out! Thanks in advance!
Hi Friedhelm,
To "deactivate" the plugin you have to set to 'Prohibit' the capability 'local/mail:usemail' to 'Authenticated user' on system context.
Cheers
Hello!
We have over 200 Moodle instances and many of them use the Local Mail plugin. However, there are some who do not want to use the plugin. However, since we update all Moodle instances centrally, we do not want to remove the plugin from the few instances. However, we cannot find a setting in Moodle to deactivate the plugin.
Best regards
hi, how can i change message limit ? default is 100 ?
i have problem with {mlang} plugin , When i use it in application mlang is working great. But after send mail mlang dosent work correctly - is translate only my main language , additional {mlang en} {mlang de} not working - is blank in mail )white space).
Moodle’s email functionality: When you send an email to a large number of users (especially over 1000), Moodle likely appends the recipient IDs or email addresses as query parameters in the URL.
URL Length Limitation: Web browsers and servers have URL length limits (typically around 2000–8000 characters). When the list of recipients exceeds this limit, it can cause issues like "log URL" errors.
BCC Behavior: BCC allows you to send an email to multiple recipients without exposing their email addresses to each other. If this list is too long, Moodle might attempt to handle it via the URL, which exceeds the limit.
Please help me out
Hi Robin,
Partially.
Ie. you can select a group, but it only filters non-members of the group out.
Then you need to click "To" to each member of the group separately.
As far as I can tell, just tried.
Cheers,
Piotr