Почему Mail при отправке письма с не-iCloud-адреса на такой же не-iCloud-адрес обращается к iCloud? Разработчик, у которого iCloud используется только для проверки синхронизации App Store-приложений, наткнулся на эту странность. Отдельного iCloud-емейла у него нет, и в System Settings iCloud отключён для всех функций Mail. Однако Little Snitch показывает, что при отправке письма Mail всё равно инициирует соединение с iCloud. Поведение воспроизводится в тестах каждый раз.
Процесс cloudd пытается достучаться до https://gateway.icloud.com:443/ckdatabase/api/client/query/retrieve, а nsurlsessiond — до https://gateway.icloud.com:443/ckdatabase/api/client/record/save. Соединения устанавливаются по TCP и UDP; похоже, если один протокол блокируется, происходит фолбэк на второй. Разобрать, что именно передаётся, не получается. iCloud использует certificate pinning, поэтому Proxyman не может расшифровать пакеты, а network extension не получает доступ к незашифрованным данным.
Автор уже поднимал похожую тему в посте о раскрытии email Apple-аккаунта через Mail. Теперь он задаётся вопросами: что Mail запрашивает и сохраняет в CloudKit, если интеграция отключена? Зачем Apple знать, когда отправляется письмо с обычного ящика? Ответа нет, поэтому он пошёл практическим путём: настроил в Little Snitch правила, которые блокируют cloudd и nsurlsessiond от подключений к gateway.icloud.com. Правила временно отключатся, когда снова понадобится тестировать iCloud-синхронизацию для разработки приложений.