Email-based self-registration with admin confirmation

Authentication ::: auth_emailadmin
Maintained by Felipe Carasso
Provides email-based self-registration with admin confirmation instead of user confirmation.
Latest release:
1376 sites
104 fans
Current versions available: 5

WARNING: Moodle 3.6 introduced a "Resend Confirmation" feature that enables unconfirmed users to self-confirm. A bug is opened with Moodle to fix this regression:

You can manually apply the patch while Moodle is not fixed upstream. See

Please read the INSTALL file carefully

Moodle plugin to provide email self-registration with admin confirmation.

The confirmation email is sent to the main admin account's email address.

When the admin clicks on the confirmation link, a "welcome" email is sent to the user.

Email body needs to be customized within the language file.

Based on default email-based self-registration module.

What's new in 1.4.4

fix(ISSUE-29): repairs config reference for Captcha after Settings API migration

What's new in 1.4.3
fix(ISSUE-17): repairs lock user fields, db update
feat(ISSUE-18): adds support for notifying users with user update capability
fix(ISSUE-21): updates config to use settings api
fix(ISSUE-25): makes use of lib function to gather profile fields

What's new in 1.4.2
fix(ISSUE-26): adds login and capability check to confirm.php (fixes phantom user-confirm)


Screenshot #0
Screenshot #1


Felipe Carasso (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS


  • Tue, Jul 26, 2016, 12:45 AM
    Hi Nellie, sorry to hear about your problems.

    Since I haven't tried the plug-in on 3.1 myself just yet, I cannot confirm that your problem is related to it. The best I can suggest is to check your authentication and users configurations for disabled flags.

    Clément, have you tried it with 3.1 yet?

    Best regards,
  • Pimenko
    Tue, Jul 26, 2016, 4:08 AM
    Hi Felipe,

    I just tried with a fresh Moodle 3.1. I usualy use only "user login method" to add users automaticly to courses. So in my test, everything seems to be ok but I don't test other methods (course view / course activity/resource view).
  • Thu, Aug 4, 2016, 12:28 AM
    Hi Felipe,
    I just installed the plugin in my moodle 3.1.1. The plugin works great. However, when a new user registers for an account. A debugging message shows up as follows (after clicking "Create my account") :

    Events API using $handlers array has been deprecated in favour of Events 2 API, please use it instead.

    line 3938 of /lib/deprecatedlib.php: call to debugging()
    line 4216 of /lib/deprecatedlib.php: call to events_dispatch()
    line 809 of /lib/classes/event/base.php: call to events_trigger_legacy()
    line 99 of /auth/emailadmin/auth.php: call to core\event\base->trigger()
    line 86 of /login/signup.php: call to auth_plugin_emailadmin->user_signup()

    As I said, the registeration process goes through, but I'm not sure what do I need to do to comply with this message.
  • Thu, Aug 4, 2016, 8:26 AM
    Hi Ziyad,

    For now, you can modify/disable error logging to have that hidden through Site Administration -> Development -> Debugging, have 'Display debug messages' unchecked and maybe change 'Debug messages' to something less verbose like 'Errors'.

    I'll look into it once I'm back home from my volunteer work for the Olympics.

    Best regards,
  • Wed, Nov 23, 2016, 6:01 AM
    Hi Felipe, you helped me in installing your plugin.
    Now I have another problem.
    I tried to register as a new user. When confirming my registration, I got: Tried to send you an email but failed!
    In the meantime I received an email message whose first lines are:

    No admin found based on notification strategy. Please check auth_emailadmin configuration.

    Hi Moodle Admin,

    A new account has been requested at '...' with the following data:

    Any specific user field example:
    user->lastname: fantasyname


    Have you any idea?

    Notice that my server acts as relay so I don't need to specify smtp server to send messages.

    Thank you.
  • Wed, Nov 23, 2016, 1:09 PM
    Hi Antonio,

    Your configuration seems to point to at least one admin user which may not have a proper email address. You can try to specify a different user in the configuration or check that your admin users have valid email addresses.

    Best regards,
  • Thu, Nov 24, 2016, 3:01 PM
    It's very strange because there are two administrators and both of them have valid email addresses. Anyway you are right because changing the notification strategy to all administrators the error disappeared.
    Even if the problem is still here.
    Now when I complete a new registration (step repeated many times) I receive the message:
    Your account has been registered and is pending confirmation by the administrator. You should expect to either receive a confirmation or to be contacted for further clarification.
    but I do not receive any message. In other words: no error, all seems working fine but no message at all.
  • Fri, Nov 25, 2016, 2:54 AM
    Hi Antonio,

    That's usually a more general issue of configuring PHP or Moodle to be able to send emails. If the plugin is not succeeding in emailing the administrators, most likely Moodle itself isn't able either. For example, Moodle sends "updates available" notifications from time to time. Are you receiving these?

    You can also enable email debug communication through Administration --> Debugging and see if it gives you a hint of what's going on.

    Best regards,
  • Fri, Nov 25, 2016, 3:50 AM
    Solved (I hope). I made a lot of fake registrations using a temporary email service ( When I tried to change domain, I started to receive email notification. Why is a mistery for me, but fortunately the issue is dead. Thank you for your patience.
  • Thu, Jan 5, 2017, 2:14 PM
    Our institution is using your plugin for external users to apply a Moodle account. to show the user account, password and email address in the notification email to applicants, we customise the language of auth_emailadmin/auth_emailadminuserconfirmation in the website site administration/language/language customisation, as can be seen below.

    However, there is a problem in the notification email, as can be seen below. The “.” in the user name is shown as “%2E”, which is the URL encoding of a dot.

    It is defined in the code to change a dot to “%2E” in the file confirm.php.

    However, it is also defined in the file auth.php for the notification email to system administrator about a user account application. But the way of programing is a little different from the one above. The user name displays correct in the email to the system administrator.

    Since the wrong usernames confuse users a lot when they get the confirmation email, it would be nice if you could solve the problem soon. Thank you very much!
  • Mon, Feb 27, 2017, 1:05 AM
    Hello Felipe,

    Thank you for the plugin. I am attempting to use it with Moodle 3.2.1+ and no matter what I do, the "Is this your first time here / Create New Account" section never appears on the login page. In Plugins/Auth/Manage Auth, the plugin is enabled, and "Email-based self-registration with admin confirmation" is selected under "Self registration". Originally I was using PHP 7.1, but reverted to PHP 5.6, with the same results. Turning on debug messages shows no useful error messages.

    If I choose the out-of-the-box "Email-based self-registration", the "Is this your first time here / Create New Account" text is displayed, so it appears to be something particular to this plugin.

    Would you mind helping? I'd appreciate any help that you could provide!

  • Mon, Feb 27, 2017, 2:15 AM
    I worked it out. In file /auth/classes/output/login.php, there is the following code (hopefully this shows up in the forum):

    // Authentication instructions.
    $this->instructions = $CFG->auth_instructions;
    if (is_enabled_auth('none')) {
    $this->instructions = get_string('loginstepsnone');
    } else if ($CFG->registerauth == 'email' && empty($this->instructions)) {
    $this->instructions = get_string('loginsteps', 'core', 'signup.php');

    I had to add this code below it on line 106 or 107:

    else if ($CFG->registerauth == 'emailadmin' && empty($this->instructions)) {
    $this->instructions = get_string('loginsteps', 'core', 'signup.php');

    After this, it seems to work fine.
  • Mon, Feb 27, 2017, 2:26 AM
    Hey Tim,

    I faced the same issue, but I solved it by specifying registration instructions inot the configuration. Would you try that with the vanilla code to see if it works for you?

    Thank you,
  • Mon, Feb 27, 2017, 2:55 AM
    Thanks, Felipe. That worked. May I suggest a note in the setup instructions and documentation for future users? Thanks, again!
  • Mon, Mar 6, 2017, 6:07 AM
    Hey Tim, your suggestion was executed. Thank you!
Please login to post comments