iPhone и mailcow: почта не обновляется сама
АйТи Фреш
Linux, Docker и DevOps

На iPhone письма mailcow видны только после ручного обновления: ActiveSync или push-уведомления

Автор: , директор ООО «АйТи-Фреш» · · ~13 мин чтения
Иллюстрация: письмо уже пришло на сервер mailcow, но на iPhone мастера оно ещё не появилось без ручного обновления
Разрыв между приходом письма на сервер и уведомлением на телефоне — вопрос протокола подключения, а не скорости почты

Если письмо в mailcow дошло мгновенно, а на iPhone появляется только после того, как сотрудник вручную потянул список вниз, — дело не в сервере, а в протоколе, которым настроен ящик. Обычный IMAP-профиль в мобильной почте Apple живёт по расписанию, которое диктует iOS, а не сервер. Разбираю, чем Exchange ActiveSync отличается от IMAP-профиля в mailcow, когда нужен ещё и Pushover, и как я настраивал это для сети сервисных центров.

Симптом: письмо в mailcow уже есть, на iPhone — только после ручного обновления

Классическая жалоба после перехода компании на корпоративную почту на mailcow: на компьютере письмо появляется сразу, в приложении Gmail на Android — тоже почти мгновенно, а в штатном приложении Почта на iPhone то же письмо видно, только если открыть ящик и потянуть список вниз. Без этого жеста список остаётся старым по 20–40 минут, а то и дольше, хотя сервер принял письмо и отдал его по IMAP в первую же секунду после доставки. Для менеджера, который ждёт подтверждения от клиента, эта задержка ощущается как «сервер не работает», хотя проблема ровно в другом месте.

Разница почти всегда в том, каким способом ящик подключён на телефоне. Если сотрудник настраивал почту сам через «Настройки → Почта → Учётные записи → Добавить учётную запись → Другое» и ввёл IMAP/SMTP вручную, устройство получает письма по расписанию, которое решает iOS, а не по факту их прихода на сервер. Если же ящик подключён как Microsoft Exchange (в терминах mailcow — Exchange ActiveSync, EAS), iOS держит с сервером постоянное соединение и получает письма сразу, без опроса по таймеру.

Почему обычный IMAP-профиль не даёт настоящий push на iPhone

В документации mailcow для Apple-устройств описаны два принципиально разных способа подключения. Первый — готовые конфигурационные профили (mobileconfig.php) с вариантами «IMAP и SMTP» (mobileconfig.php?only_email), «IMAP, SMTP и Cal/CardDAV», а также версии с уже встроенным паролем приложения (&app_password). Скачать такой профиль можно только после входа в веб-интерфейс mailcow под тем самым ящиком, для которого он нужен. Все эти профили настраивают именно IMAP-подключение — то есть тот же протокол, что использует настольный почтовый клиент, но без механизма мгновенного уведомления сервера о новом письме.

Второй способ — эмуляция Exchange ActiveSync, и документация mailcow прямо указывает его отличие от IMAP-профилей: у EAS есть «преимущество поддержки push-почты, то есть мгновенного уведомления о входящих сообщениях» — такой оговорки про push у обычных IMAP-профилей в документации нет. На практике это означает: если ящик настроен как обычный IMAP-аккаунт (даже через готовый mobileconfig-профиль mailcow), iOS решает сама, когда идти на сервер за новыми письмами, ориентируясь на настройку «Загрузка данных» (Fetch New Data) в параметрах учётных записей Почты, а не на реальное время доставки письма.

Важно понимать: это ограничение не про mailcow как сервер — Dovecot в mailcow поддерживает IMAP IDLE и готов отдать письмо мгновенно любому клиенту, который держит IDLE-соединение (так работают Thunderbird и Outlook на компьютере). Ограничение в том, как Apple реализует фоновую работу обычного IMAP-аккаунта в приложении Почта: для стороннего IMAP-сервера iOS в фоне не держит IDLE, а предлагает только режимы «Выборка» по интервалу (каждые 15 или 30 минут, ежечасно) или «Вручную». Режим Push в этом списке доступен лишь для учётных записей, которые его поддерживают, — в нашем случае это Exchange. Поэтому интервал синхронизации обычного IMAP-аккаунта на iPhone определяется настройкой выборки, а не моментом доставки письма.

Сравнение обычного IMAP-профиля и Exchange ActiveSync для почты mailcow на iPhone по скорости доставки уведомлений
Обычный IMAP-профиль mailcow не даёт push — для мгновенных уведомлений нужен тип учётной записи Exchange

Настройка Exchange ActiveSync в mailcow: пароль приложения и ручной ввод

Чтобы получить настоящий push на iPhone, ящик нужно добавить как учётную запись Microsoft Exchange, а не как «Другое / IMAP»: «Настройки → Почта → Учётные записи → Добавить учётную запись → Microsoft Exchange», ввести адрес почты, затем на предложение «Войти» выбрать ручную настройку (Configure Manually) и ввести пароль. Если на ящике включена двухфакторная аутентификация, документация mailcow отдельно оговаривает: обычный пароль не подойдёт, нужен пароль приложения (App Password), который генерируется в панели mailcow для этого конкретного устройства.

Здесь есть ловушка, на которой спотыкаются чаще всего. Профили mobileconfig.php с встроенным паролем приложения выглядят как самый быстрый путь массовой раздачи — пользователь просто ставит профиль, не вводя сервер, порты и пароль. Но все четыре варианта профиля в документации mailcow настраивают IMAP и SMTP (плюс, по желанию, CalDAV/CardDAV), а не Exchange. Push такой профиль не даст, и для нашей задачи он не подходит. Учётную запись Exchange на iPhone приходится заводить через мастер «Microsoft Exchange» — это минута на телефон: адрес, «Настроить вручную», пароль приложения, «Сохранить». Для компании из трёх десятков сотрудников я просто сажусь с каждым на пять минут или отправляю короткую инструкцию со скриншотами. Отдельно документация предупреждает о побочном эффекте профилей: пароль приложения лежит в файле открытым, поэтому передавать профиль по почте или в мессенджере нельзя — файл даёт полный доступ к ящику. Отдельно стоит проверить один нюанс, который документация выделяет отдельным предупреждением: если на устройстве включена функция «Автоматически управлять настройками подключения» (Automatically manage connection settings), она может незаметно подменить порт SMTP с 587 на 25 и отключить аутентификацию — тогда письма перестанут отправляться при внешне корректной настройке. Эту опцию стоит держать выключенной на всех корпоративных iPhone.

Когда даже EAS не спасает: нужен Pushover

После перевода на Exchange ActiveSync список писем в приложении Почта обновляется сам, без ручного жеста, — сервер сам инициирует синхронизацию при поступлении письма. Но это не то же самое, что гарантированное всплывающее уведомление на экране: iOS может ограничивать фоновую активность приложения Почта из-за режима энергосбережения, отключённого фонового обновления приложений (Background App Refresh) или просто из-за того, что сотрудник свернул телефон в карман на несколько часов. Письмо в итоге доступно сразу при открытии приложения, но звук и баннер могут не сработать вовремя.

Для случаев, когда важно именно активное уведомление, а не факт синхронизации, в mailcow есть встроенная интеграция с сервисом Pushover — она настраивается отдельно от способа подключения почты и работает поверх обычного ящика. В панели mailcow администратор открывает настройки конкретного ящика и в блоке Pushover указывает два разных значения от Pushover: User/Group Key (идентификатор получателя) и API Token/Key (ключ конкретного приложения, которое отправляет уведомления) — это два разных поля, и их путают чаще всего, вписывая один и тот же ключ в оба. Дополнительно можно задать собственный заголовок и текст уведомления, а также ограничить срабатывание только письмами от конкретных отправителей, чтобы не получать пуш на каждую рассылку.

Схема пути письма от сервера mailcow до уведомления на iPhone в зависимости от типа подключения ящика
Развилка IMAP/ActiveSync определяет, узнает ли сотрудник о письме сразу или только при следующем ручном открытии почты

Кейс «Дисплей как новый»: почему мастера узнавали о заявках с опозданием

Клиент — сеть сервисных центров по ремонту телефонов «Дисплей как новый», 33 рабочих места в нескольких точках города. Заявки от агрегаторов и часть обращений с сайта падают на общий ящик, из которого администратор точки распределяет их между мастерами через пересылку на личные корпоративные адреса на iPhone. Проблема вскрылась, когда клиент пожаловался, что заявка «горит», а мастер её не видел два часа: письмо реально ушло на его ящик сразу, но телефон был настроен через обычный IMAP-профиль, который iOS синхронизировала по расписанию раз в 15–60 минут в зависимости от того, в сети Wi-Fi или на мобильном интернете находился телефон в момент простоя.

Проверка заняла минут двадцать: у всех мастеров ящики были подключены как «Другое → IMAP» из старой инструкции, которую администратор скопировал ещё с прошлого почтового сервера и не пересматривал при переезде на mailcow. Пересоздали учётные записи как Microsoft Exchange (ActiveSync) с паролями приложений: у каждого мастера старый IMAP-аккаунт удалили и завели новый через мастер Exchange вручную — профили mobileconfig.php тут не годились, потому что они настраивают только IMAP. На 33 телефона ушло два рабочих дня с учётом того, что мастера сидят в разных точках. Дополнительно на ящик диспетчера, куда падают заявки от агрегаторов, включили Pushover с фильтром по отправителям — чтобы диспетчер получал явный звуковой пуш именно на заявки, а не на внутреннюю переписку. После этого разрыв между приходом письма на сервер и уведомлением на телефоне сократился до нескольких секунд на новых заявках.

Готовый профиль mobileconfig.php от mailcow (во всех четырёх вариантах) настраивает обычный IMAP, а не Exchange ActiveSync — push-почты он сам по себе не даёт. Для push нужен именно тип учётной записи Microsoft Exchange, заведённый через мастер на телефоне.

Как проверить, что push реально работает, а не только выглядит настроенным

После пересоздания учётной записи как Exchange ActiveSync я всегда проверяю push отдельным тестом, а не доверяю визуальному виду настроек: отправляю тестовое письмо с другого ящика на проверяемый адрес и засекаю время до появления уведомления на экране блокировки телефона, при этом сам телефон в момент отправки должен быть в режиме ожидания, а не открытым приложением Почта — иначе результат смазывается фоновой активностью экрана. Разница в секунды против минут сразу показывает, подключение действительно работает как EAS или iOS по какой-то причине откатилась на поведение обычного опроса.

Отдельно стоит проверить настройки самого устройства: в разделе «Загрузка данных» (Fetch New Data) параметров учётных записей Почты напротив только что созданной учётной записи должно стоять «Push», а не «Fetch» или «Вручную» — если там стоит не Push, значит, тип аккаунта на телефоне всё же не Exchange, либо сработало упомянутое выше автоматическое управление настройками подключения. Для Pushover тест ещё проще: после сохранения ключей в настройках ящика mailcow предлагает проверить учётные данные (verify credentials), а затем достаточно отправить на ящик тестовое письмо. Если проверка не проходит или пуш не пришёл за несколько секунд, проблема почти всегда в перепутанных местами User Key и API Token, а не в самой доставке письма.

Чек-лист: как выбрать способ подключения почты на iPhone

Если задержка в получении писем на iPhone некритична (личный ящик руководителя, который проверяет почту сам несколько раз в день), достаточно обычного IMAP-профиля из mailcow — он проще в диагностике и не создаёт лишней синхронизационной нагрузки. Если же от ящика зависит скорость реакции на клиентские заявки — служба поддержки, диспетчер, менеджер по продажам — стоит сразу настраивать Exchange ActiveSync, не тратя время на разбор жалоб «почта тормозит» через месяц после внедрения.

Отдельно я советую сразу проговорить с ключевыми сотрудниками, нужен ли им ещё и Pushover поверх ActiveSync — это отдельная настройка, не входящая в тип подключения, и включать её стоит выборочно: на всех ящиках компании звуковой пуш на каждое письмо быстро начинают отключать сами сотрудники, и тогда даже нужные уведомления перестают доходить. Перед раздачей профилей полезно свериться с общим регламентом выдачи техники и доступов новому сотруднику, чтобы новый сотрудник получал почту сразу в рабочем виде, а не по устаревшей инструкции, как это произошло у «Дисплей как новый».

Ещё один момент, который стоит закрепить письменно в регламенте компании, а не держать в голове одного администратора: при выдаче корпоративного смартфона сотруднику всегда указывать тип учётной записи Exchange, а не полагаться на то, что телефон сам предложит правильный вариант при вводе адреса. iOS далеко не всегда автоматически определяет ActiveSync по домену — часто система по умолчанию предлагает именно generic IMAP, и если администратор торопится, проще всего провалиться в старую схему подключения, которую потом придётся разбирать так же, как в кейсе с «Дисплей как новый».

Чек-лист правильной настройки почты mailcow на iPhone сотрудников для получения писем без задержки
Пять шагов заменяют часы разбора жалоб «почта не приходит», когда причина — тип подключения на телефоне

Частые вопросы

Почему на iPhone письма mailcow появляются только после ручного обновления?

Скорее всего, ящик подключён как обычный IMAP-аккаунт (в том числе через стандартный профиль mailcow mobileconfig.php с IMAP и SMTP) — iOS синхронизирует такие ящики по расписанию, а не мгновенно при поступлении письма.

Что даёт настоящий push для почты на iPhone в mailcow?

Подключение ящика как учётной записи Microsoft Exchange (Exchange ActiveSync). Документация mailcow прямо указывает, что именно у EAS есть преимущество push-почты — мгновенного уведомления о новых письмах, в отличие от обычных IMAP-профилей.

Обязателен ли Pushover для работы push-уведомлений на iPhone?

Нет. Exchange ActiveSync сам по себе даёт push-синхронизацию письма в приложение. Pushover — отдельная надстройка mailcow для гарантированного активного уведомления (звук, баннер), полезная, когда фоновая синхронизация iOS всё равно может запаздывать из-за энергосбережения устройства.

Как подключить Exchange ActiveSync, если на ящике включена двухфакторная аутентификация?

Обычный пароль ящика не подойдёт — нужен пароль приложения (App Password), сгенерированный в панели mailcow для конкретного устройства. Его вводят вместо обычного пароля при ручной настройке учётной записи Microsoft Exchange на iPhone.

Какие поля нужно заполнить для Pushover в mailcow?

Два разных значения: User/Group Key (идентификатор получателя из аккаунта Pushover) и API Token/Key (ключ конкретного приложения в Pushover). Их часто путают и вписывают одно и то же значение в оба поля — уведомления в этом случае не приходят.

Почему после включения Exchange ActiveSync письма всё равно приходят на телефон не сразу?

Проверьте, не отключено ли фоновое обновление приложений (Background App Refresh) для Почты и не работает ли телефон в жёстком режиме энергосбережения — эти настройки iOS могут задерживать доставку push-уведомления даже при корректно настроенном EAS.

Столкнулись с похожей задачей? Обращайтесь — решим

Если у вас происходит что-то из описанного в этой статье — или любая другая проблема с ИТ-инфраструктурой, — обращайтесь в любое время. Мои специалисты и я лично разберём ситуацию, найдём настоящую причину и доведём до решения.

Возьмёмся и за разовую задачу, и за постоянное обслуживание. Первичная консультация — бесплатно и без обязательств.

📞 +7 903 729-62-41 ✈ Telegram @ITfresh_Boss

С уважением, Семёнов Евгений Сергеевич, директор «АйТи Фреш» — IT-аутсорсинг для компаний до 50 рабочих мест, 15+ лет практики

Источники

© ООО «АйТи-Фреш» · Москва · Все статьи