diff --git a/lib/api/messages.js b/lib/api/messages.js index 9f686693..81bba9be 100644 --- a/lib/api/messages.js +++ b/lib/api/messages.js @@ -1026,7 +1026,7 @@ module.exports = (db, server, messageHandler, userHandler, storageHandler) => { try { mailboxes = await db.database .collection('mailboxes') - .find({ user }) + .find({ user, specialUse: { $nin: ['\\Junk', '\\Trash'] } }) .project({ _id: true }) diff --git a/lib/handlers/on-copy.js b/lib/handlers/on-copy.js index 85e8f033..c8bfc88e 100644 --- a/lib/handlers/on-copy.js +++ b/lib/handlers/on-copy.js @@ -175,11 +175,7 @@ module.exports = (server, messageHandler) => (mailbox, update, session, callback messageData.rdate = Date.now() + (targetData.retention || 0); messageData.modseq = modifyIndex; // reset message modseq to whatever it is for the mailbox right now - if (['\\Junk', '\\Trash'].includes(targetData.specialUse)) { - delete messageData.searchable; - } else { - messageData.searchable = true; - } + messageData.searchable = true; let junk = false; if (targetData.specialUse === '\\Junk' && !messageData.junk) { diff --git a/lib/handlers/on-store.js b/lib/handlers/on-store.js index aa2496e1..87209c36 100644 --- a/lib/handlers/on-store.js +++ b/lib/handlers/on-store.js @@ -199,7 +199,7 @@ module.exports = server => (mailbox, update, session, callback) => { shouldExpunge = true; } - if (!['\\Junk', '\\Trash'].includes(mailboxData.specialUse) && !message.flags.includes('\\Deleted')) { + if (!message.flags.includes('\\Deleted')) { flagsupdate.$set.searchable = true; } else { flagsupdate.$unset = { diff --git a/lib/message-handler.js b/lib/message-handler.js index 4787400a..58aced9e 100644 --- a/lib/message-handler.js +++ b/lib/message-handler.js @@ -859,11 +859,7 @@ class MessageHandler { let unseen = message.unseen; - if (['\\Junk', '\\Trash'].includes(targetData.specialUse) || !message.undeleted) { - delete message.searchable; - } else { - message.searchable = true; - } + message.searchable = true; let junk = false; if (targetData.specialUse === '\\Junk' && !message.junk) { @@ -1082,7 +1078,7 @@ class MessageHandler { messageData.exp = !!mailboxData.retention; messageData.rdate = Date.now() + (mailboxData.retention || 0); - if (['\\Junk', '\\Trash'].includes(mailboxData.specialUse) || !mailboxData.undeleted) { + if (!mailboxData.undeleted) { delete messageData.searchable; } else { messageData.searchable = true;