diff --git a/lib/messagelib.php b/lib/messagelib.php index 12d35727a5b..bbbfccf0ecb 100644 --- a/lib/messagelib.php +++ b/lib/messagelib.php @@ -64,6 +64,9 @@ function message_send($eventdata) { if (is_int($eventdata->userfrom)) { $eventdata->userfrom = $DB->get_record('user', array('id' => $eventdata->userfrom)); } + if (!isset($eventdata->userto->auth) or !isset($eventdata->userto->suspended) or !isset($eventdata->userto->deleted)) { + $eventdata->userto = $DB->get_record('user', array('id' => $eventdata->userto->id)); + } //after how long inactive should the user be considered logged off? if (isset($CFG->block_online_users_timetosee)) { diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 61b4b44585b..e49776def32 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -5008,7 +5008,7 @@ function email_to_user($user, $from, $subject, $messagetext, $messagehtml='', $a } // skip mail to suspended users - if (isset($user->auth) && $user->auth=='nologin') { + if ((isset($user->auth) && $user->auth=='nologin') or (isset($user->suspended) && $user->suspended)) { return true; } diff --git a/message/output/email/message_output_email.php b/message/output/email/message_output_email.php index 37efbe2fa3b..3ee4dcb088b 100644 --- a/message/output/email/message_output_email.php +++ b/message/output/email/message_output_email.php @@ -46,6 +46,11 @@ class message_output_email extends message_output { return true; } + // skip any messaging suspended and deleted users + if ($eventdata->userto->auth === 'nologin' or $eventdata->userto->suspended or $eventdata->userto->deleted) { + return true; + } + //the user the email is going to $recipient = null; diff --git a/message/output/jabber/message_output_jabber.php b/message/output/jabber/message_output_jabber.php index 92eb8a8a994..22cf96988c7 100644 --- a/message/output/jabber/message_output_jabber.php +++ b/message/output/jabber/message_output_jabber.php @@ -50,6 +50,11 @@ class message_output_jabber extends message_output { return true; } + // skip any messaging suspended and deleted users + if ($eventdata->userto->auth === 'nologin' or $eventdata->userto->suspended or $eventdata->userto->deleted) { + return true; + } + //hold onto jabber id preference because /admin/cron.php sends a lot of messages at once static $jabberaddresses = array();