LibreMail is an offline-first Android email client. IMAP is currently connect-per-operation (connection reuse, issue #125, is OFF by default); full-history backfill (issue #12) prefetches message bodies + attachments on unmetered networks (default FetchPolicy.WIFI_ONLY). A perf drilldown found this opens roughly 1 + K + attachments separate authenticated connections per backfill page, saturating a provider's connection/bandwidth budget and starving interactive message-opens. These tickets track making LibreMail's connection/request patterns and data usage respect each major provider's documented limits and degrade gracefully under throttling. (Outlook/Hotmail uses the Microsoft Graph REST API; Gmail, Yahoo/AOL, and iCloud use IMAP/SMTP.)
Documented limits
5 max concurrent IMAP connections per IP.
Folder index truncated to 10,000 messages.
Rapid connection retries or failed auth trigger an automated 1-hour service lockout.
SMTP: 500 recipients/day, 100 connections-or-messages/day via external relay.
Basic auth deprecated (OAuth 2.0 or app-specific password required).
Optimization levers
Hard-cap at most 5 concurrent connections.
Never retry-storm auth — on auth failure, back off long and stop (circuit-breaker) to avoid the 1-hour lockout.
Strongly prefer connection reuse over connect-per-op (5 is a tight ceiling).
Respect the 10k folder truncation.
Depends on
Depends on / see the throttling-backoff umbrella issue #360.
## Context
LibreMail is an offline-first Android email client. IMAP is currently connect-per-operation (connection reuse, issue #125, is OFF by default); full-history backfill (issue #12) prefetches message bodies + attachments on unmetered networks (default `FetchPolicy.WIFI_ONLY`). A perf drilldown found this opens roughly `1 + K + attachments` separate authenticated connections per backfill page, saturating a provider's connection/bandwidth budget and starving interactive message-opens. These tickets track making LibreMail's connection/request patterns and data usage respect each major provider's documented limits and degrade gracefully under throttling. (Outlook/Hotmail uses the Microsoft Graph REST API; Gmail, Yahoo/AOL, and iCloud use IMAP/SMTP.)
## Documented limits
- 5 max concurrent IMAP connections per IP.
- Folder index truncated to 10,000 messages.
- Rapid connection retries or failed auth trigger an automated 1-hour service lockout.
- SMTP: 500 recipients/day, 100 connections-or-messages/day via external relay.
- Basic auth deprecated (OAuth 2.0 or app-specific password required).
## Optimization levers
- Hard-cap at most 5 concurrent connections.
- Never retry-storm auth — on auth failure, back off long and stop (circuit-breaker) to avoid the 1-hour lockout.
- Strongly prefer connection reuse over connect-per-op (5 is a tight ceiling).
- Respect the 10k folder truncation.
## Depends on
Depends on / see the throttling-backoff umbrella issue #360.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Context
LibreMail is an offline-first Android email client. IMAP is currently connect-per-operation (connection reuse, issue #125, is OFF by default); full-history backfill (issue #12) prefetches message bodies + attachments on unmetered networks (default
FetchPolicy.WIFI_ONLY). A perf drilldown found this opens roughly1 + K + attachmentsseparate authenticated connections per backfill page, saturating a provider's connection/bandwidth budget and starving interactive message-opens. These tickets track making LibreMail's connection/request patterns and data usage respect each major provider's documented limits and degrade gracefully under throttling. (Outlook/Hotmail uses the Microsoft Graph REST API; Gmail, Yahoo/AOL, and iCloud use IMAP/SMTP.)Documented limits
Optimization levers
Depends on
Depends on / see the throttling-backoff umbrella issue #360.