На iPhone письма mailcow видны только после ручного обновления: ActiveSync или push-уведомления
Если письмо в 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 определяется настройкой выборки, а не моментом доставки письма.
Настройка 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 (ключ конкретного приложения, которое отправляет уведомления) — это два разных поля, и их путают чаще всего, вписывая один и тот же ключ в оба. Дополнительно можно задать собственный заголовок и текст уведомления, а также ограничить срабатывание только письмами от конкретных отправителей, чтобы не получать пуш на каждую рассылку.
Кейс «Дисплей как новый»: почему мастера узнавали о заявках с опозданием
Клиент — сеть сервисных центров по ремонту телефонов «Дисплей как новый», 33 рабочих места в нескольких точках города. Заявки от агрегаторов и часть обращений с сайта падают на общий ящик, из которого администратор точки распределяет их между мастерами через пересылку на личные корпоративные адреса на iPhone. Проблема вскрылась, когда клиент пожаловался, что заявка «горит», а мастер её не видел два часа: письмо реально ушло на его ящик сразу, но телефон был настроен через обычный IMAP-профиль, который iOS синхронизировала по расписанию раз в 15–60 минут в зависимости от того, в сети Wi-Fi или на мобильном интернете находился телефон в момент простоя.
Проверка заняла минут двадцать: у всех мастеров ящики были подключены как «Другое → IMAP» из старой инструкции, которую администратор скопировал ещё с прошлого почтового сервера и не пересматривал при переезде на mailcow. Пересоздали учётные записи как Microsoft Exchange (ActiveSync) с паролями приложений: у каждого мастера старый IMAP-аккаунт удалили и завели новый через мастер Exchange вручную — профили mobileconfig.php тут не годились, потому что они настраивают только IMAP. На 33 телефона ушло два рабочих дня с учётом того, что мастера сидят в разных точках. Дополнительно на ящик диспетчера, куда падают заявки от агрегаторов, включили Pushover с фильтром по отправителям — чтобы диспетчер получал явный звуковой пуш именно на заявки, а не на внутреннюю переписку. После этого разрыв между приходом письма на сервер и уведомлением на телефоне сократился до нескольких секунд на новых заявках.
Как проверить, что 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, и если администратор торопится, проще всего провалиться в старую схему подключения, которую потом придётся разбирать так же, как в кейсе с «Дисплей как новый».
Частые вопросы
Почему на 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.
Источники
- mailcow docs — Apple macOS/iOS client configuration — Способы подключения Apple-устройств: конфигурационные профили mobileconfig.php (IMAP/SMTP, с Cal/CardDAV, с встроенным паролем приложения) и Exchange ActiveSync; прямое указание, что push-почта — преимущество именно EAS; требование пароля приложения при 2FA; предупреждение про Automatically manage connection settings и подмену порта SMTP 587→25. https://docs.mailcow.email/client/client-apple/
- mailcow docs — Pushover — Настройка Pushover в панели ящика: поля User/Group Key и API Token/Key, возможность задать заголовок/текст уведомления и фильтр по отправителям. https://docs.mailcow.email/manual-guides/mailcow-UI/u_e-mailcow_ui-pushover/
- Apple Support — Change Mail settings on iPhone / Fetch New Data — Режимы Push / Fetch / Manual для учётных записей Почты на iPhone; Push доступен только для учётных записей, которые его поддерживают. https://support.apple.com/guide/iphone/change-mail-settings-iph3d3cf9cc/ios



