From 1cf12c914a1f340289429b6577082126614a9e2b Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 2 Aug 2017 10:58:17 +0200 Subject: [PATCH 1/2] 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 448a3be9e..ff5c81570 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 253054d1edf90817b4ebb59a02a1c32bd3375f76 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 2 Aug 2017 10:58:42 +0200 Subject: [PATCH 2/2] 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 ff5c81570..c1c464d39 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; }