Почта устроена иначе, чем мессенджер
Мессенджер держит с сервером постоянное соединение. Пришло сообщение — сервер тут же его толкнул, телефон зазвонил. Соединение тонкое и почти не ест батарею, потому что по нему ничего не передаётся, пока не появится новость.
Классическая почта устроена наоборот: клиент сам ходит на сервер и спрашивает, нет ли чего нового. Раз в пятнадцать минут, раз в полчаса, а в экономном режиме и реже. Между двумя визитами письмо просто лежит на сервере, и телефон о нём не знает.
Push для почты существует, но работает не всегда
У протокола IMAP есть режим, при котором сервер сам сообщает клиенту о новом письме. Проблема в трёх вещах.
- Не все серверы его поддерживают — особенно корпоративные и небольшие провайдеры.
- Соединение нужно держать открытым, а система его закрывает, когда приложение уходит в фон.
- Приложение должно быть живым, а телефон его усыпляет ради батареи.
Поэтому даже включённый push у почты работает нестабильно: то приходит мгновенно, то через двадцать минут.
Это не значит, что почтовые приложения плохо написаны. Они борются с системными ограничениями, которых у мессенджеров нет: те попадают в список «важных» приложений и получают привилегии, недоступные почте.
Что делает система с фоновыми приложениями
- Усыпляет редко используемыеЕсли почту открывают раз в неделю, система понижает ей приоритет и урезает фоновые проверки.
- Группирует пробужденияЧтобы не будить процессор часто, система собирает задачи разных приложений в пачки. Проверка почты откладывается до общего окна.
- Режет активность при низком зарядеВ режиме энергосбережения фоновая синхронизация отключается почти целиком.
- Учитывает сетьНа мобильном интернете проверки реже, чем на Wi-Fi.
Почему уведомления теряются, даже когда приходят
Вторая половина проблемы не техническая, а человеческая. В ящик приходит двадцать писем в день, из них важных два. Уведомления настроены на все, поэтому мозг быстро учится их игнорировать, а потом рука отключает их совсем — вместе с важными.
Отсюда правило: чем меньше сигналов, тем выше шанс, что на них отреагируют. Один сигнал в день, но по делу, работает лучше, чем двадцать.
Что из этого следует
Если письма нужны быстро и надёжно, воевать с системными ограничениями бессмысленно. Проще перенести задачу туда, где ограничений нет: в мессенджер, у которого постоянное соединение и приоритет в системе.
Пересылка отправляет копию письма в чат — приходит не сигнал, а само письмо. Задержка до минуты, и она предсказуема: почта проверяется раз в минуту, независимо от того, спит ли ваше почтовое приложение.
Как это устроено — в общем разборе. Что настроить, чтобы в чат шло только важное, — в статье про фильтры.
Проверить на своём ящике
Задержка до минуты и предсказуема. Семь дней бесплатно, пароль не нужен.
Открыть бота в MAXНаведите камеру телефона на код — бот откроется в MAX прямо на телефоне. В мессенджере он называется «Электронная почта».
Ссылка та же: max.ru/id220301453524_bot