diff --git a/imp/docs/CHANGES b/imp/docs/CHANGES
index ecb69139ef1..cd736526e65 100644
--- a/imp/docs/CHANGES
+++ b/imp/docs/CHANGES
@@ -8,6 +8,7 @@ v6.3.0-git
v6.2.1
------
+[mms] Don't perform purge Spam login task unless Spam mailbox exists.
[mms] Fix dragging a mailbox to the base level in dynamic view.
[mms] Add ability to drag/drop text to dynamic HTML compose window on Chrome
and IE.
diff --git a/imp/lib/LoginTasks/Task/PurgeSpam.php b/imp/lib/LoginTasks/Task/PurgeSpam.php
index 01f78c24140..c3970a603c7 100644
--- a/imp/lib/LoginTasks/Task/PurgeSpam.php
+++ b/imp/lib/LoginTasks/Task/PurgeSpam.php
@@ -28,8 +28,11 @@ class IMP_LoginTasks_Task_PurgeSpam extends Horde_LoginTasks_Task
*/
public function __construct()
{
- if ($this->interval = $GLOBALS['prefs']->getValue('purge_spam_interval')) {
- if ($GLOBALS['prefs']->isLocked('purge_spam_interval')) {
+ global $prefs;
+
+ if (($this->interval = $prefs->getValue('purge_spam_interval')) &&
+ $this->_spamMbox()) {
+ if ($prefs->isLocked('purge_spam_interval')) {
$this->display = Horde_LoginTasks::DISPLAY_NONE;
}
} else {
@@ -44,9 +47,7 @@ public function __construct()
*/
public function execute()
{
- /* If there is no Spam mailbox set, or it doesn't exist, exit. */
- if (!($spam = IMP_Mailbox::getPref(IMP_Mailbox::MBOX_SPAM)) ||
- !$spam->exists) {
+ if (!($spam = $this->_spamMbox())) {
return false;
}
@@ -83,4 +84,16 @@ public function describe()
$GLOBALS['prefs']->getValue('purge_spam_keep'));
}
+ /**
+ * Return the spam mailbox.
+ *
+ * @return IMP_Mailbox The spam mailbox, if it exists. Otherwise, false.
+ */
+ protected function _spamMbox()
+ {
+ return (($spam = IMP_Mailbox::getPref(IMP_Mailbox::MBOX_SPAM)) && $spam->exists)
+ ? $spam
+ : false;
+ }
+
}
diff --git a/imp/package.xml b/imp/package.xml
index e7a3d131aa9..1f225bca229 100644
--- a/imp/package.xml
+++ b/imp/package.xml
@@ -3699,6 +3699,7 @@
2014-07-08
GPL-2.0
+* [mms] Don't perform purge Spam login task unless Spam mailbox exists.
* [mms] Fix dragging a mailbox to the base level in dynamic view.
* [mms] Add ability to drag/drop text to dynamic HTML compose window on Chrome and IE.
* [mms] Re-enable drag/drop of text to dynamic plaintext compose window (Bug #13281).