diff --git a/config-dist.php b/config-dist.php
index 1cdf4b3..501865d 100644
--- a/config-dist.php
+++ b/config-dist.php
@@ -360,6 +360,9 @@ $CFG->admin = 'admin';
 // When working with production data on test servers, no emails should ever be send to real users
 // $CFG->noemailever = true;
 //
+// Divert all outgoing emails to this address to test and debug emailing features
+// $CFG->divertallemailsto = 'root@localhost.local';
+//
 // Specify prefix for fake unit test tables. If not specified only tests
 // that do not need fake tables will be executed.
 // $CFG->unittestprefix = 'tst_';
diff --git a/lib/moodlelib.php b/lib/moodlelib.php
index 4d0e1d6..0b8f76e 100644
--- a/lib/moodlelib.php
+++ b/lib/moodlelib.php
@@ -4614,6 +4614,12 @@ function email_to_user($user, $from, $subject, $messagetext, $messagehtml='', $a
         return true;
     }
 
+    if (!empty($CFG->divertallemailsto)) {
+        $subject = "[DIVERTED {$user->email}] $subject";
+        $user = clone($user);
+        $user->email = $CFG->divertallemailsto;
+    }
+
     // skip mail to suspended users
     if (isset($user->auth) && $user->auth=='nologin') {
         return true;
