Хорошую вещь сделал Google – дал возможность подключаться к почте, календарям и контактам через Microsoft Exchange ActiveSync. В выходом iOS 4 появилась возможность подключать несколько учётных записей Exchange. Это полезно для тех, кто уже использует Exchange для рабочей почты, теперь они могут подключить и GMail через ActiveSync.

Одна из очень удобных для меня функций в ActiveSync – получение информации о новых письмах (и не только) через Push. Письмо отправлено – письмо получено – письмо сразу видно на iPhone. Очень удобно. В обычном GMail, работающему по IMAP4, письма проверяются по методу Fetch периодически с интервалом 15, 30, 60 минут или же вручную. Если вам нужно реагировать на почту быстро, то этого явно недостаточно. Тут на помощь приходит переключение GMail на Microsoft Exchange ActiveSync.

Однако я столкнулся с одной досадной проблемой в GMail/Exchange – некоторые письма нечитаемы из-за проблем с кодировкой. Поменять кодировку из программы на iPhone и iPad нельзя, и я переходил на Web-интерфейс gmail.com. Проблемные письма приходят особенно часто от mail.ru, yandex.ru, ukr.net:

Я думал, что проблема именно в Mail.app, но случайно нашёл причину – виноват именно ActiveSync. Если вы можете поступиться скоростью прихода почты и вам досаждают нечитаемые письма, то переключитесь обратно на GMail IMAP4. При его использовании письма читаются нормально:

Проблема возникает при Content-Transfer-Encoding 8bit. Это абсолютно нормальные поля, письма в этом формате, например, формирует Yandex при отправке почты через web-интерфейс:

Content-Type: text/plain; charset=koi8-r
Content-Transfer-Encoding: 8bit

Если же отправлять из Mail.app на Mac или же с web-интерфейса GMail, то используется Content-transfer-encoding base64 и почта нормально открывается через ActiveSync:

Content-type: text/plain; charset=koi8-r
Content-transfer-encoding: base64