Aaron Stone wrote:
> I suspect the SM function in question is this one:
>
> /**
> * Retrieves a list with headers, flags, size or
> * internaldate from the imap server
> *
> [snip]
> function sqimap_get_small_header_list($imap_stream, $msg_list,
> $aHeaderFields = array('Date', 'To', 'Cc', 'From',
> 'Subject', 'X-Priority', 'Content-Type'),
> $aFetchItems = array('FLAGS', 'RFC822.SIZE', 'INTERNALDATE')) {
> [snip]
> }
This is not the *main* bottleneck. None of the fields enumerated here
trigger message retrieval. That said, retrieval of these values is at
this moment still not quite as fast as it should be. The problem is also
described in bug http://www.dbmail.org/mantis/view.php?id=139. In short:
dbmail's fetch command retrieves the required information message by
message, instead of gathering information for all required messages with
a minimum number of queries. But I'm already working on a rewrite of the
fetch code that will address this problem. Won't be ready before 2.2 though.
At this point the _only_ things that trigger full message retrieval and
parsing are:
envelope
bodystructure
body[]<> and friends (rfc822.xxx)
search text
The first two can be optimized fairly easily, with only minimal changes
to the delivery chain and the addition of two new cache tables.
The last _can_ be optimized but will require more extensive changes and
a new daemon. I've outlined this in a wiki:
http://www.dbmail.org/dokuwiki/doku.php?id=bodysearch
The body[]<> (partial) message retrieval will always require message
retrieval by nature.
--
________________________________________________________________
Paul Stevens paul at nfg.nl
NET FACILITIES GROUP GPG/PGP: 1024D/11F8CD31
The Netherlands________________________________http://www.nfg.nl