Blocks ::: block_quickmail
Maintained by Buddy Ethridge, Robert Russo
A block that provides selective, bulk emailing within courses. Developed by LSU.
Mike Churchward
Thursday, March 17, 2016, 2:56 AM
General comments

Version Reviewed: v1.5.5 (2015122912)


Quickmail is a block that allows users to send emails to other users from within Moodle. Either in bulk or individually. It also maintains histories, drafts, etc.


Quickmail is quite widely used, and generally works, but there are a number of outstanding bugs (see some I found below) and a general lack of documentation.

  • Students can still use even is setting is set otherwise

  • The filter by role dropdown doesn't work

  • Uses the word "section" to describe a Moodle "group"



Installation is straightforward - it is a well behaved block. It creates 5 DB tables to store its data.


The block is added to the course in a normal fashion by the teacher. There can only be 1 per course.

The plugin has a configuration page where the teacher can select a few options:

  • If students can use the plugin

  • What roles are in the filter list

  • What to prepend on the email subject

  • If the sender receives a copy by default

When using the plugin, as a student or teacher, the user sees a number of areas:

  • The recipient's area allows the user to select who will receive the email. On the left you have the list of current recipients. On the right you have potential recipients and options to filter by role and/or by group.
    Between the two, you have Add, Remove, Add All, and Remove All buttons.

  • A standard Moodle file picker for adding attachments.

  • A Subject box

  • A standard Moodle editor for the message body

  • A dropdown to select pre-saved signatures

  • A set of radio buttons to select if the user receives a copy or not

  • A set of buttons for Send, Save as Draft, and Cancel

When sent, emails are sent immediately (not dependant on cron), and appears to come from the sender. No additional formatting/boilerplate is added, except for the subject prefix if configured.

On the history page, the user can see the emails they have sent. They are given a row for each message, with:

  • Date/time

  • Subject

  • Attachements

  • View icon (looking glass)

  • Select icon (red X) - Admin only

  • A status column

  • A failed to send column

  • A send again column

An odd behavior is that when viewing a historic email, it takes you back to the compose page with everything filled in, and you can send it again.

The Drafts page is identical to the history page.

For admins, on the history and draft pages, there is a dropdown to select what user to view.

Each user also has a page to create and edit signatures. The page gives you a spot to select the title of the signature, the content, and whether it is the default signature. With options to save, cancel, or delete.

Course Maintenance:

Quickmail has no real "maintenance" concerns, it is a course level block.


The documentation is very light, only offering a basic README https://github.com/lsuits/block_quickmail/blob/master/README.md


No formal accessibility testing was done on this plugin. However, nothing has come up in our other tests to indicate a problem. In the future, we will be developing more formal accessibility testing suites and will redo them then.


Code Review:

Full code testing results

(Scores out of 2 - 2 = perfect; 1 = some concerns; 0 = problems.)
Tested for PHP 5.6 and 7 on both MySQL and Postgres. No version of technology problems were found. Score - 2.
Installation test (mpci install) - no problems. Score 2.
PHP syntax test (mpci phplint) - no problems. Score 2.
PHP copy/paste detector (mpci phpcpd) - duplicates in provided language files. This is expected. Score 2.
PHP code complexity (mpci phmd) - generally code is okay. Ten files out of ~30 flagged with simple violations. Score - 1.
Moodle code guidelines (mpci codechecker) - Many Moodle coding guideline violations (90% of files violate). Score - 0.
CSS syntax test (mpci csslint) - Two concerns, nothing fatal. Score - 1.
JS syntax test (mpci jshint) - minor errors identified. Score - 1.
Moodle plugin structure test - Passed. Score - 2.
PHPUnit tests - No tests provided. Score - 0.
Behat tests - Tests provided; Some failures. Score - 1.
Total score 14 / 22 - 64%. 

Maintenance Review:

(Scores out of 2 - 2 = confident; 1 = nervous; 0 = concerned.)
Lifetime: Plugin has existed since at least 2011 on version 1.9 - initial githib commit on Aug. 26, 2011. Score - 2
Releases: Versions have been released to Moodle plugins DB at least yearly, with the latest in December 2015. Score - 2
Maintainers: Currently being maintained by Robert Russo and David Elliot of LSU. Score - 2
Support Response: It has an active bug tracker on Github, but has many issues open for a long period. Score - 1
Release timing: How quickly is a release made available to a major Moodle release? 3.0 was on time. 2.7 was on time. 2.8 and 2.9 were late. Score - 1.

Total score 8 / 10 - 80%.