Похоже, дело не в iCloud, а в функции «Скрыть мой адрес электронной почты» iCloud.
Вы можете попробовать отключить настройку сайта «Нормализация адресов электронной почты». Оказывается, создание фиктивных адресов электронной почты, чтобы Discourse не узнал ваш реальный адрес, — это то же самое, что создание фиктивных адресов для регистрации сотен аккаунтов.
Похоже, вам придётся решить, хотите ли вы разрешать пользователям создавать аккаунты с адресами электронной почты, которые не являются их реальными.
Хорошо, у меня на самом деле есть iCloud+, поэтому я попробовал использовать функцию «Скрыть мой адрес электронной почты» (ntrdl-2025), и всё сработало. Оказывается, проблема тоже не в этом.
Если мы получим чёткое объяснение проблемы, сможем разобраться.
Например, как именно Cloudflare участвует в этом?
Это означает, что автоматически пересылаться на подтверждённый адрес электронной почты в вашем аккаунте Apple будут только письма, отправленные с назначенных адресов через приложение или веб-сайт.
Работает ли пересылка на скрытый адрес только от одного отправителя? Как iCloud в этом участвует? Используется ли поле From? Envelope-From? Sender?
Для любых размещённых на хостинге сайтов мы можем проверить записи о доставке отдельных писем по ID очереди исходящих писем через /admin/email-logs. Для сайтов с самостоятельным размещением необходимо сделать то же самое с их почтовым провайдером.
Я просмотрел логи, чтобы попытаться понять проблему Dir’а — всё ниже анонимизировано.
В случае Dir’a было отправлено три письма с сайта Rust, которые были доставлены:
А также возвраты (bounces) для каждого из них в логе Bounced, например:
From: Mail Delivery System <mailer-daemon@icloud.com>
To: incoming+verp-e5bxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@rust-lang.discoursemail.com
Message-ID: <20250629195443.xxxxxxxxxxxx@outbound.ms.icloud.com>
Subject: Undelivered Mail Returned to Sender
Это системное сообщение, информирующее вас о том, что ваше письмо не может быть доставлено одному или нескольким получателям. Детали письма и ошибки следующие:
<exxx@actualemaildomain.com>: host route1.mx.cloudflare.net[162.159.205.13] сказал:
550 5.7.1 отсутствует или недопустим адрес в заголовке From. tUExxxxxxxxx (в
ответ на конец команды DATA)
Ага. Теперь понятно, как именно Cloudflare участвует в этом — это реальный MX-сервер для домена электронной почты Dir’а.
Оставив в стороне смехотворный результат пересылки iCloud’ом сообщения о возврате, содержащего реальный адрес электронной почты пользователя, отправителю, проблема, похоже, заключается во взаимодействии между iCloud и Cloudflare.
iCloud, по всей видимости, использует SRS (Схема переписывания отправителя) для инкапсуляции реального адреса Envelope-From при отправке в Cloudflare, но Cloudflare отклоняет такие письма.
Не вижу, как Discourse мог бы что-то сделать иначе здесь — он выполняет всё, что от него требуется? Проблема, очевидно, находится в другом месте.