OK...I have made some progress with this. Looking through the SOLR logs, the query that IMAP is sending has “user:FULL-EMAIL-ADDRESS” whereas the doveadm search has “user:USERNAME”. The indexing was done using just the username.
Is there a way to change the IMAP search command username to match the username used to login?
This is further complicated by the fts automatic update setting: it seems to use the domain-less username when updating SOLR.
Something to ensure a consistent username for indexing would be great.
-
From: Philip Warner
Sent: Monday, 19 September 2022 10:30 PM
To: dovecot@dovecot.org
Subject: doveadm-search finds emails, but IMAP search fails to find any
Using dovecot 2.3.7.2 with solr 8.11.2 when I do:
doveadm search -u user mailbox INBOX subject "something"
I get multiple mail ID's.
When I start a manual IMAP session and login as that user, select INBOX, and try the command:
. search subject "something"
It returns zero mail ID's; this is consistent across all searches using IMAP - no results returned, no matter what I search for in IMAP.
The dovecot -n command returns:
# 2.3.7.2 (3c910f64b): /etc/dovecot/dovecot.conf# Pigeonhole version 0.5.7.2 ()# OS: Linux 5.4.0-125-generic x86_64 Ubuntu 20.04.5 LTS# Hostname: WITHELDmail_location = maildir:~/Mailmail_plugins = " fts fts_solr virtual"mail_privileged_group = mailmanagesieve_notify_capability = mailtomanagesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttextnamespace { location = virtual:~/Mail/virtual prefix = virtual. separator = .}namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } mailbox virtual.All { comment = All my messages special_use = \All } prefix =}passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql}passdb { driver = pam}plugin { fts = solr fts_autoindex = yes fts_enforced = yes fts_solr = url=http://localhost:8983/solr/dovecot/ sieve = file:~/sieve;active=~/.dovecot.sieve}protocols = " imap lmtp sieve pop3 sieve"service imap { vsz_limit = 4 G}service index-worker { vsz_limit = 2 G}service indexer-worker { vsz_limit = 2 G}service lmtp { inet_listener lmtp { address = 127.0.0.1 port = 24 }}ssl_cert = </etc/letsencrypt/live/WITHELD/fullchain.pemssl_client_ca_dir = /etc/ssl/certsssl_dh = # hidden, use -P to show itssl_key = # hidden, use -P to show ituserdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql}userdb { driver = passwd}protocol lmtp { mail_plugins = " fts fts_solr virtual sieve" postmaster_address = WITHELD}protocol lda { mail_plugins = " fts fts_solr virtual sieve"}protocol imap { mail_max_userip_connections = 40}-