iCloud: требования провайдера и ответы серверов
В этой статье
С Apple работать непривычно. Других крупных провайдеров можно хотя бы спросить, как они видят ваш домен, а у Apple нет ни кабинета для отправителей, ни отчётов о жалобах, ни белого списка. Об этом она пишет сама на единственной странице для отправителей. Таблицы кодов там тоже нет: сказано только, что серверы объясняют отказ в ответе и что в большинстве ответов есть ссылка.
Поэтому главный источник сведений об iCloud здесь: что отвечают её серверы. Ниже собрано всё, что мы о них знаем, и честно отмечено, что подтверждает сама Apple, а что нет.
Какие адреса относятся к iCloud
Официально у почты iCloud три домена: @icloud.com, @me.com и @mac.com. Старые адреса работают наравне с новыми.
Есть ещё два случая, которые легко не заметить:
- Свой домен на iCloud+. Подписчики iCloud+ могут получать почту на собственный домен. Такой адрес выглядит как обычный корпоративный, но письма принимает Apple. Estismail узнаёт такие домены по записи MX (
mx01.mail.icloud.com,mx02.mail.icloud.com) и отправляет на них так же, как на iCloud. - Адреса @privaterelay.appleid.com. Их люди оставляют при входе через Apple, им посвящён отдельный раздел ниже.
Как Estismail отправляет на iCloud
У iCloud в Estismail своя дорожка отправки: темп, проверки и остановка считаются отдельно, и отказы Apple не задерживают письма другим провайдерам.
- Проба. Рассылка на iCloud начинается с двух партий по 50 писем, после каждой сервис ждёт ответы серверов. Одного отказа как спам или блок в пробе хватает, чтобы отправка на iCloud встала на паузу.
- Разгон. Если проба чистая, скорость растёт по рейтингу вашего домена у iCloud.
- Снижение скорости. Если Apple просит повторить позже (
421 4.7.1,451 4.7.1,421 4.7.0) и таких ответов много, Estismail на 30 минут снижает скорость отправки на iCloud. - Пауза и остановка. Отказы по правилам Apple и много несуществующих адресов ставят отправку на iCloud на паузу: 10 минут, затем 30, затем 120, и каждый раз она начинается снова с небольшой пробы. После третьей паузы отправка останавливается, причина видна в отчёте рассылки.
Если отказывает только один сервер отправки, например его адрес попал в список Spamhaus, Estismail исключает этот сервер, а рассылка идёт через остальные.
Что Apple требует от рассылок
Apple перечисляет 13 условий и пишет, что выполнить надо все, иначе письмо отклоняется. Чисел в них нет: ни предела скорости, ни порога жалоб. Источник: страница Apple для отправителей, support.apple.com/en-us/102322.
| требование Apple | как это сделано в Estismail | что сделать вам |
|---|---|---|
| Только те, кто подписался сам: без купленных, арендованных и дописанных баз | импортированные базы проверяет модератор до первой рассылки по ним | собирать подписчиков с подтверждением адреса |
| Ссылка отписки, которая срабатывает сразу | в каждом письме ссылка «Отписаться» и заголовки List-Unsubscribe, List-Unsubscribe-Post; адрес выключается сразу | оставить ссылку отписки в шаблоне |
| Заголовки ARC у пересланных писем | Estismail чужие письма не пересылает | ничего |
| Письмо по RFC 5321 и RFC 5322 | письмо собирает сервис | ничего |
| Обратная запись DNS | настроена на всех серверах отправки | ничего |
| Постоянные IP и домены, реклама отдельно от служебных писем | адреса серверов отправки постоянные | служебные письма отправлять с отдельного поддомена |
| Одно имя и адрес в поле «От кого» | задаёте вы | не менять их от письма к письму |
| SPF и DKIM | каждое письмо подписано DKIM Estismail; SPF проходит по домену сервера отправки | подключить свой домен и добавить его подпись DKIM, которую подсказывает кабинет |
| Домен отправителя публикует DMARC | запись подсказывает кабинет | опубликовать запись DMARC: Estismail без неё письма не задерживает, а Apple вправе отклонить |
| Следить за временными и постоянными ответами | каждый ответ разбирается автоматически и виден в отчёте | смотреть отчёт, если отправка встала на паузу |
| Единое правило для адресов, которые возвращаются | адрес, которого нет, выключается при первом таком ответе | ничего |
| Время от времени убирать неактивных | открытия и переходы видны в отчётах | убирать тех, кто давно не реагирует |
| Не возвращать отписавшихся | отписавшийся адрес выключен из рассылок | не возвращать его новым импортом |
Apple проверяет SPF и DKIM у всех входящих писем и соблюдает политику DMARC домена отправителя. У самих доменов iCloud политика p=quarantine, поэтому отправлять рассылку с адреса @icloud.com нельзя: письмо с чужих серверов уйдёт в «Нежелательные».
Ответы серверов iCloud и что делает Estismail
| код | текст ошибки | тип | что значит | что делает Estismail |
|---|---|---|---|---|
| 554 5.7.1 | [HM08] Message rejected due to local policy | Observed | Apple не приняла письмо по своим правилам. Что именно не понравилось, ответ не говорит, а метку HM08 Apple нигде не расшифровывает. Apple пишет, что решает по репутации IP и домена, проверке содержимого и отзывам получателей. Ссылка в ответе ведёт на страницу Apple для отправителей. Ответ постоянный. | С первых таких отказов Estismail ставит отправку рассылки на iCloud на паузу: 10 минут, затем 30, затем 120, и каждый раз начинает снова с небольшой пробы. После третьей паузы останавливает её окончательно. Адрес подписчика не блокируется. В отчёте: «Письма заблокированы как СПАМ». |
| 554 5.7.1 | [CS01] Message rejected due to local policy | Observed | Тот же отказ по правилам Apple, что и с меткой HM08. Сама по себе метка CS01 причину не называет: это может быть репутация IP или домена, содержимое письма или домены в его ссылках. Ответ постоянный, повтор того же письма не поможет. | С первых таких отказов Estismail ставит отправку рассылки на iCloud на паузу: 10 минут, затем 30, затем 120, и каждый раз начинает снова с небольшой пробы. После третьей паузы останавливает её окончательно. Адрес подписчика не блокируется. В отчёте: «Письма заблокированы как СПАМ». |
| 550 5.7.1 | [CS01] Message rejected due to local policy | Observed | Тот же отказ по правилам Apple с кодом 550. Встречается и без метки в скобках: 550 5.7.1 Message rejected due to local policy. Причину ответ не называет. Ответ постоянный. | С первых таких отказов Estismail ставит отправку рассылки на iCloud на паузу: 10 минут, затем 30, затем 120, и каждый раз начинает снова с небольшой пробы. После третьей паузы останавливает её окончательно. Адрес подписчика не блокируется. В отчёте: «Письма заблокированы как СПАМ». |
| 554 5.7.1 | [CS02] Phishing or spoofing content | Observed | По перечню Bento метка CS02 значит, что содержимое письма похоже на фишинг или подделку. Apple эту метку не описывает, и точный текст ответа может отличаться. Ответ постоянный. | С первых таких отказов Estismail ставит отправку рассылки на iCloud на паузу: 10 минут, затем 30, затем 120, и каждый раз начинает снова с небольшой пробы. После третьей паузы останавливает её окончательно. Адрес подписчика не блокируется. В отчёте: «Письмо заблокировано из-за вложения или содержимого». |
| 554 5.7.1 | [CS03] Suspicious attachment or link | Observed | По перечню Bento метка CS03 значит, что в письме подозрительное вложение или ссылка. Apple эту метку не описывает, и точный текст ответа может отличаться. Ответ постоянный. | С первых таких отказов Estismail ставит отправку рассылки на iCloud на паузу: 10 минут, затем 30, затем 120, и каждый раз начинает снова с небольшой пробы. После третьей паузы останавливает её окончательно. Адрес подписчика не блокируется. В отчёте: «Письмо заблокировано из-за вложения или содержимого». |
| 554 5.7.1 | [HME1] Authentication failure | Observed | По перечню Bento метка HME1 значит, что письмо не прошло ни SPF, ни DKIM. Apple пишет, что проверяет эти подписи у всех входящих писем. Точный текст ответа может отличаться. Ответ постоянный. | С первых таких отказов Estismail ставит отправку рассылки на iCloud на паузу: 10 минут, затем 30, затем 120, и каждый раз начинает снова с небольшой пробы. После третьей паузы останавливает её окончательно. Адрес подписчика не блокируется. В отчёте: «Не прошла проверку подлинности (SPF, DKIM, DMARC)». |
| 550 5.7.1 | Your message was rejected due to <домен>'s DMARC policy | Observed | Письмо не прошло проверку DMARC, а владелец домена в поле «От кого» опубликовал политику, которая велит такие письма отклонять. Apple соблюдает политику DMARC домена отправителя. Обычно это значит, что подпись DKIM вашего домена для Estismail не добавлена в DNS. Ответ постоянный. | С первых таких отказов Estismail ставит отправку рассылки на iCloud на паузу: 10 минут, затем 30, затем 120, и каждый раз начинает снова с небольшой пробы. После третьей паузы останавливает её окончательно. Адрес подписчика не блокируется. В отчёте: «Не прошла проверку подлинности (SPF, DKIM, DMARC)». |
| 550 5.7.1 | Mail from IP <IP> was rejected due to listing in Spamhaus SBL | Observed | Apple отказала IP-адресу сервера отправки: этот адрес в списке Spamhaus SBL. Отказ относится к серверу, а не к письму и не к адресу подписчика. Ответ постоянный, пока адрес остаётся в списке. | Это отказ серверу отправки Estismail, а не вашим письмам. Если отказывает один из серверов, Estismail исключает его, и рассылка идёт через остальные. Если отказы идут шире, с первых таких отказов Estismail ставит отправку рассылки на iCloud на паузу: 10 минут, затем 30, затем 120, и каждый раз начинает снова с небольшой пробы. После третьей паузы останавливает её окончательно. Адрес подписчика не блокируется. В отчёте: «SMTP сервер временно блокируется». |
| 550 5.7.1 | Your email was rejected due to having a domain present in the Spamhaus DBL -- see | Observed | В письме есть домен из списка Spamhaus DBL: в адресе отправителя или в ссылках. Отказ относится к домену, поэтому разослать другим адресатам iCloud то же письмо тоже не получится. Ответ постоянный. | С первых таких отказов Estismail ставит отправку рассылки на iCloud на паузу: 10 минут, затем 30, затем 120, и каждый раз начинает снова с небольшой пробы. После третьей паузы останавливает её окончательно. Адрес подписчика не блокируется. В отчёте: «Письмо заблокировано из-за вложения или содержимого». |
| 550 5.7.0 | Proofpoint block | Observed | По перечню Bento так выглядит отказ фильтра Proofpoint, которым пользуется Apple: плохая репутация IP-адреса сервера отправки. Apple об этом не пишет, и точный текст ответа может отличаться. Ответ постоянный. | Это отказ серверу отправки Estismail, а не вашим письмам. Если отказывает один из серверов, Estismail исключает его, и рассылка идёт через остальные. Если отказы идут шире, с первых таких отказов Estismail ставит отправку рассылки на iCloud на паузу: 10 минут, затем 30, затем 120, и каждый раз начинает снова с небольшой пробы. После третьей паузы останавливает её окончательно. Адрес подписчика не блокируется. В отчёте: «SMTP сервер временно блокируется». |
| 554 5.7.0 | Blocked | Observed | Постоянный отказ с указанием IP-адреса сервера отправки. Разборы связывают его с данными Proofpoint о репутации адреса. Повтор того же письма не поможет. Apple этот ответ не описывает. | Это отказ серверу отправки Estismail, а не вашим письмам. Если отказывает один из серверов, Estismail исключает его, и рассылка идёт через остальные. Если отказы идут шире, с первых таких отказов Estismail ставит отправку рассылки на iCloud на паузу: 10 минут, затем 30, затем 120, и каждый раз начинает снова с небольшой пробы. После третьей паузы останавливает её окончательно. Адрес подписчика не блокируется. В отчёте: «SMTP сервер временно блокируется». |
| 554 5.7.1 | <адрес>: Relay access denied | Observed | Сервер Apple отказался принимать почту для этого домена. Такое бывает у корпоративных доменов на iCloud+: MX домена указывает на Apple, а сам домен к почте iCloud уже не подключён. Дело не в письме и не в отправителе, чинит владелец домена получателя. Ответ постоянный. | Адрес подписчика не блокируется, рассылка не останавливается: дело не в письме. В отчёте: «Ошибка обмена с почтовым сервером». |
| 550 5.1.1 | <адрес>: user does not exist | RFC | Ящика с таким адресом на iCloud нет: обычно опечатка или давно удалённый адрес. По RFC 3463 код 5.1.1 значит «неверный адрес ящика». Apple просит убирать из списка адреса, которые постоянно возвращаются. Ответ постоянный. | Estismail блокирует адрес: в следующие рассылки он не попадает. Если таких адресов в рассылке много, отправка на iCloud встаёт на паузу, а затем останавливается. В отчёте: «Почта не существует». |
| 550 5.1.1 | <адрес>: inactive email address | RFC | Адрес на iCloud отключён: письма на него не доставляются. Адрес может снова заработать, если владелец его включит. Ответ постоянный. | Estismail блокирует адрес: в следующие рассылки он не попадает. Если таких адресов в рассылке много, отправка на iCloud встаёт на паузу, а затем останавливается. В отчёте: «Почта не существует». |
| 552 5.2.2 | <адрес>: user is over quota | RFC | Ящик получателя на iCloud переполнен. Места в нём не появится, пока владелец его не освободит. По RFC 3463 код 5.2.2 значит «ящик переполнен». Письмо этой рассылки не доставлено, адрес при этом живой. | Адрес подписчика не блокируется, следующие рассылки на него уходят. В отчёте: «Ящик временно переполнен». |
| 450 4.2.2 | Mailbox full or over quota | RFC | То же с временным кодом: ящик переполнен, письмо можно попробовать доставить позже. По RFC 3463 код 4.2.2 значит «ящик переполнен». Текст из разбора Suped, в наших журналах такого ответа не было. Ответ временный. | Estismail повторяет доставку позже, до 12 часов. Адрес подписчика не блокируется, рассылка не останавливается. В отчёте об отсрочке: «Ящик временно переполнен». |
| 421 4.7.1 | Messages to <адрес> deferred due to excessive volume | Observed | Apple временно не принимает письма: их пришло слишком много. Блок обычно снимается за несколько часов. Помогает меньше одновременных соединений и отправка, растянутая по времени. Чисел Apple не называет. Ответ временный. | Estismail повторяет доставку позже, до 12 часов. Если таких ответов много, снижает скорость отправки на iCloud на 30 минут. Адрес подписчика не блокируется. В отчёте об отсрочке: «Провайдер ограничил скорость приёма»; если за 12 часов письмо не принято: «Почтовый сервер не принимает письма». |
| 451 4.7.1 | Service unavailable - try again later | Observed | Сервер Apple просит повторить позже и причину не называет. Ответ временный. | Estismail повторяет доставку позже, до 12 часов. Если таких ответов много, снижает скорость отправки на iCloud на 30 минут. Адрес подписчика не блокируется. В отчёте об отсрочке: «Провайдер ограничил скорость приёма»; если за 12 часов письмо не принято: «Почтовый сервер не принимает письма». |
| 421 4.7.0 | Temporarily deferred | Observed | Apple временно откладывает письмо. Частые такие ответы говорят об ограничении скорости или о слабой репутации отправителя. Тот же код приходит с отсылкой к проверке Proofpoint DNSBL. Ответ временный. | Estismail повторяет доставку позже, до 12 часов. Если таких ответов много, снижает скорость отправки на iCloud на 30 минут. Адрес подписчика не блокируется. В отчёте об отсрочке: «Провайдер ограничил скорость приёма»; если за 12 часов письмо не принято: «Почтовый сервер не принимает письма». |
| 421 4.7.0 | me.com Error: too many errors | Observed | Сервер Apple закрыл соединение, потому что в нём набралось слишком много ошибок, например отказов по несуществующим адресам. Само письмо не отклонено. Ответ временный. | Estismail повторяет доставку позже, до 12 часов. Адрес подписчика не блокируется, рассылка не останавливается. В отчёте об отсрочке: «Провайдер ограничил скорость приёма»; если за 12 часов письмо не принято: «Почтовый сервер не принимает письма». |
| 550 5.1.1 | bad mailbox name | Provider | Так отвечает приватный релей Apple на адреса @privaterelay.appleid.com, если домен отправителя не зарегистрирован у Apple. Адрес при этом может быть живым. Домен регистрирует владелец приложения или сайта со входом через Apple в аккаунте Apple Developer. Ответ постоянный, пока домена нет в списке. | Адрес подписчика не блокируется, рассылка не останавливается: адрес может быть живым. В отчёте: «Ошибка обмена с почтовым сервером». |
| 550 5.1.1 | Relay not allowed | Provider | Ещё один ответ приватного релея Apple на адреса @privaterelay.appleid.com. Apple требует, чтобы домен в поле «От кого» был зарегистрирован в аккаунте Apple Developer и совпадал с доменом подписи DKIM. Текст ответа взят с форума разработчиков Apple. Ответ постоянный, пока это не выполнено. | Адрес подписчика не блокируется, рассылка не останавливается: адрес может быть живым. В отчёте: «Ошибка обмена с почтовым сервером». |
Apple не расшифровывает ни кодов, ни меток в скобках. Значения меток CS02, CS03, HME1 и ответа про Proofpoint взяты из перечней Bento и SMTP Field Manual и разборов Suped; у каждой ошибки на своей странице стоит ссылка на источник. В таблице их тип отмечен как Observed.
В наших журналах за 90 дней таких ответов пока немного: 554 5.7.1 [HM08] 8 раз, 552 5.2.2 13 раз, 550 5.7.1 про Spamhaus SBL один раз. Остальные тексты взяты из открытых перечней, и правила для них стоят заранее.
Если Apple отказывает, а причины не видно
Самый частый ответ Message rejected due to local policy причины не называет, и метки [HM08] и [CS01] ничего к этому не добавляют. Apple пишет только, на что смотрит: репутация IP и домена, проверка содержимого, отзывы получателей. Поэтому разбирать стоит так:
- Посмотрите, все ли письма на iCloud отклоняются или только часть. Если только часть, ищите отличия в содержимом и ссылках. Если все, дело скорее в домене или настройке.
- Проверьте подпись DKIM своего домена и запись DMARC.
- Проверьте, откуда взята база, и уберите тех, кто давно не реагирует.
- Не отправляйте то же письмо снова без изменений.
Если требования выполнены, а отказы продолжаются, Apple предлагает написать на icloudadmin@apple.com. Нужно указать компанию, домен, IP-адреса серверов, тексты ошибок и подробное описание, когда всё началось. Тексты ошибок есть в отчёте рассылки, IP-адреса подскажет поддержка Estismail.
Адреса @privaterelay.appleid.com
При входе через Apple человек может скрыть свою почту, и вы получите адрес вида …@privaterelay.appleid.com. Письма на него Apple пересылает на настоящий ящик, но только от зарегистрированных отправителей. Обычным рассылкам на @icloud.com это не нужно: речь только о тех, у кого есть приложение или сайт со входом через Apple.
Что требует Apple (developer.apple.com, раздел Configure private email relay service):
- Письмо подписано SPF или DKIM. Конверт письма у Estismail на домене сервера отправки, поэтому ваш путь: DKIM. Домен подписи должен точно совпасть с доменом в поле «От кого».
- Этот домен зарегистрирован в аккаунте Apple Developer: Certificates, Identifiers & Profiles, Sign in with Apple for Email Communication. Каждый поддомен регистрируется отдельно.
- Если домена нет в списке, письмо возвращается. На форумах разработчиков Apple такие отказы выглядят как
550 5.1.1 bad mailbox nameи550 5.1.1 Relay not allowed.
Такой отказ не значит, что адреса нет, поэтому Estismail его не выключает и рассылку не останавливает. Письма на эти адреса идут по дорожке iCloud.
Частые вопросы
Почему открытий на iCloud может быть больше, чем прочтений? Защита конфиденциальности в Apple Mail загружает картинки заранее и скрывает от отправителя, открыто ли письмо. Она работает в приложении на любых адресах, не только на iCloud. Переходы по ссылкам она не задевает, на них и стоит смотреть.
Нужна ли запись DMARC? Да. Это одно из обязательных условий Apple. Estismail не задерживает письма без неё, но Apple может их отклонить. Достаточно записи с политикой p=none и подписи DKIM вашего домена.
Что делать, если отправку на iCloud остановили? Откройте отчёт рассылки, строку iCloud: там ответы серверов. Найдите ответ в таблице выше, там написано, что он значит. Если непонятно, напишите в поддержку Estismail.
Можно ли попасть в белый список Apple? Нет. Apple прямо пишет, что белого списка для массовых отправителей у неё нет.
Как Estismail доставляет на iCloud, коротко и с примерами: страница iCloud на сайте
Спасибо!
Напишите, что осталось непонятным: support@estismail.com. Ответим и поправим статью.