From ae10bf7342eb5eb253783a3b61e60a07cf2d6db7 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 2 Aug 2017 10:58:17 +0200 Subject: [PATCH 1/3] Don't send emails to disabled users Signed-off-by: Joas Schilling --- lib/MailQueueHandler.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/MailQueueHandler.php b/lib/MailQueueHandler.php index 7520c5950..403e43d0b 100644 --- a/lib/MailQueueHandler.php +++ b/lib/MailQueueHandler.php @@ -155,6 +155,7 @@ public function sendEmails($limit, $sendTime, $forceSending = false, $restrictEm $userLanguages = $this->config->getUserValueForUsers('core', 'lang', $affectedUsers); $userTimezones = $this->config->getUserValueForUsers('core', 'timezone', $affectedUsers); $userEmails = $this->config->getUserValueForUsers('settings', 'email', $affectedUsers); + $userEnabled = $this->config->getUserValueForUsers('core', 'enabled', $affectedUsers); // Send Email $default_lang = $this->config->getSystemValue('default_language', 'en'); @@ -163,6 +164,11 @@ public function sendEmails($limit, $sendTime, $forceSending = false, $restrictEm $deleteItemsForUsers = []; $this->activityManager->setRequirePNG(true); foreach ($affectedUsers as $user) { + if (isset($userEnabled[$user]) && $userEnabled[$user] === 'no') { + $deleteItemsForUsers[] = $user; + continue; + } + if (empty($userEmails[$user])) { // The user did not setup an email address // So we will not send an email :( From 6ed6ddf641a51fea07ddb96d8985d2d922f1f89e Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 2 Aug 2017 10:58:42 +0200 Subject: [PATCH 2/3] Delete email entries of users without email so the queue gets empty Signed-off-by: Joas Schilling --- lib/MailQueueHandler.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/MailQueueHandler.php b/lib/MailQueueHandler.php index 403e43d0b..f037c7846 100644 --- a/lib/MailQueueHandler.php +++ b/lib/MailQueueHandler.php @@ -173,6 +173,7 @@ public function sendEmails($limit, $sendTime, $forceSending = false, $restrictEm // The user did not setup an email address // So we will not send an email :( $this->logger->debug("Couldn't send notification email to user '{user}' (email address isn't set for that user)", ['user' => $user, 'app' => 'activity']); + $deleteItemsForUsers[] = $user; continue; } From 0536598f863f808c1faf86a44d0bf958c2a29684 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Fri, 29 Sep 2017 10:50:13 +0200 Subject: [PATCH 3/3] Fix disabled user detection Signed-off-by: Joas Schilling --- lib/MailQueueHandler.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/MailQueueHandler.php b/lib/MailQueueHandler.php index f037c7846..916179431 100644 --- a/lib/MailQueueHandler.php +++ b/lib/MailQueueHandler.php @@ -164,7 +164,7 @@ public function sendEmails($limit, $sendTime, $forceSending = false, $restrictEm $deleteItemsForUsers = []; $this->activityManager->setRequirePNG(true); foreach ($affectedUsers as $user) { - if (isset($userEnabled[$user]) && $userEnabled[$user] === 'no') { + if (isset($userEnabled[$user]) && $userEnabled[$user] === 'false') { $deleteItemsForUsers[] = $user; continue; }