nextcloud / nextcloud/mail

Incorporate IMAP for the unified search results

Open
#3,481 10 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

1. to develop enhancement filter:search
Dominant language
JavaScript
Stars
1k
Forks
348
Avg merge
12h 28m
Merged PRs (30d)
91

Description

Feature Request

The current unified search implementation (https://github.com/nextcloud/mail/pull/3433) does not search in bodies, as we just query the cached data in the database and we don't have the body there.

One of the technical limitations of cache-only search is that on IMAP we can't easily search across all mailboxes.

BUT there is a special IMAP mailbox attribute \All and we could use this mailbox (if it exists) to search in there. This won't give us a deep link to the message in the original mailbox, but at least we're able to find it.

As a fallback we could look into the INBOX, because there is a high chance people store most of their emails there, so we might find the message(s) the user is looking for there.

Summary

Use \All (or INBOX if \All is not available) mailbox to search email bodies on IMAP.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue points to the unified search implementation in PR 3433; begin there and inspect how IMAP mailboxes are queried. Confirm the search uses the \All mailbox when available, falls back to INBOX otherwise, and returns body matches, while accounting for the limitation around deep links.

Written by the indexing model from the issue text.

Assessment

Domain
backend, search
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.