[horde] Improving ActiveSync speed on large mailboxes

Sebastian Arcus s.arcus at open-t.co.uk
Tue Jul 14 15:32:43 UTC 2026


On 14/07/2026 15:40, Nels Lindquist wrote:
> Hi, Sebastian.
> 
> On 2026-07-13 9:41 AM, Sebastian Arcus wrote:
>> If you could bear with me a little as this is a subject I know very 
>> little about. On IMAP, one feature which really helps with very large 
>> mailboxes, specially on mobile clients, is the ability to download 
>> only the headers and only request the email body when the actual email 
>> is opened on the devices.
>>
>> I gather (if my research is correct) that EAS doesn't have a direct 
>> equivalent. Instead it relies on the client requesting how much of the 
>> email body it wants to receive via the TruncationSize parameter.
>>
>> I also gather (if this is correct), that there is no way to configure 
>> this parameter in the Gmail app on Android. Looking at the ActiveSync 
>> logs, it seems Gmail requests by default 200000 (byes, I assume?). I 
>> wonder if it would be feasible at all to have a configurable override 
>> in Horde, in the ActiveSync section - something like 
>> "override_truncationsize" - to be able to set this to zero - and thus 
>> force the client to only download the headers. I think this might 
>> speed up considerably loading of large mail folders - and save quite a 
>> bit of storage space on client devices as well.
>>
>> As it stands at the moment, I find downloading of large Inboxes over 
>> EAS very slow compared to IMAP.
>>
>> However, I have no idea if the above is at all feasible and workable 
>> within the limits of the EAS protocol?
> 
> Do you have imap caching enabled in imp? If so, what cache driver are 
> you using?
> 
> Is there a reason you need to have entire mailboxes with all historical 
> mail loaded on mobile devices? It's pretty typical for the client to 
> only download the last 30 days worth of messages, with remote search 
> available to access older messages on demand.

I configure mobile clients to only download 1 month worth of emails. 
These are very busy mailboxes, and although it works, it is very slow to 
load the initial list in Gmail and generally to configure and use. A 
significant reason behind this is that Gmail requests a lot of data. 
Looking at the logs, iOS Mail app seems to request 500 byes per message, 
while Gmail requests 200 000. That is 40 times more data. The iOS Mail 
app is far faster to load the list and generally to work with email 
using ActiveSync. Even searches use the same truncation parameter, so 
returning search results is much slower in Gmail (aside from the fact 
that Gmail insists on searching all folders - but that's an issue to be 
tackled separately). If Horde would have something like 
['activesync']['force_truncation_size'] to override the client and 
return 500 byes (or some other size configurable by the admin) per 
message when talking to the Gmail app, like in the case of iOS Mail, 
Gmail should be significantly more responsive and efficient.


More information about the horde mailing list