On 11/18/2012 6:57 AM, Dave Abrahams wrote:
on Sat Nov 17 2012, "Daniel L. Miller" <dmiller-AT-amfes.com> wrote:
On 11/16/2012 12:58 PM, Dave Abrahams wrote:
on Thu Nov 15 2012, "Daniel L. Miller" <dmiller-AT-amfes.com> wrote:
On 11/14/2012 6:52 AM, Dave Abrahams wrote:
Does anyone have an answer to this question? Should I simply issue an IMAP search command, or is there a better way?
Put this in a cron script:
doveadm search -A text zyxabcxyz > /dev/null
That will perform a search through every mailbox on the system, indexing as it goes. The search query is unlikely to return much in the way of results, so log files won't fill up much. That actually doesn't work for me. "doveadm index ..." does, though.
Use whatever works for you. The problem (for me) with "doveadm index" is it only works with the specified mailboxes. It can be done for all users - but only designated mailboxes. So a "doveadm index -A INBOX" will scan all inboxes - but none of the other folders. The search command I showed performs a recursive search that hits everything. I take it back; I'm not sure if "doveadm search" causes re-indexing. However, I *know* issuing a search command from a Python IMAP library doesn't do so.
That indicates something else is broken - unless my Dovecot
understanding is totally off (which is always possible, even likely).
To my knowledge, until the relatively recent support for the "doveadm
index" command, the primary and indeed only way to index was to perform
a search. When Dovecot receives a search request, whether passed by
IMAP or through the doveadm backdoor, if the mailbox isn't current then
any new mails are supposed to be added to the index in the course of the
search. If that doesn't happen - then I think something is broken in
your setup.
-- Daniel