- Порезанный
- 29 сентября 2026 г. в 02:29 UTC
- Автор
- Kamo
- Обещать
- 3ae4903
Обзор 2-го раунда (email-fix-review-2.md) нашел исправление 1-го раунда для MAJOR #3 (несколько) root domains) вновь открыли исходный баг: - БЛОКЕР: kamouniverse.com является, в прямом эфире, одновременно проверенным корнем (org domains, Проверенный на владение, без родителя) И домен псевдонима по умолчанию (org alias domains) для орг 1168485648209608710 — точная форма, о которой идет речь в этом отчете — в то время как реальная Почтовый ящик живет только на каноническом домене (sage@kamocrm.com). Охранник 1 раунда '!rootDomains.contains(domain)' пропустил многокорневую повторную запись всякий раз, когда кандидат собственный домен был уже корнем, исходя из предположения, что адрес корневого домена "должен быть уже «были опробованы непосредственно» — ложно для домена с двойной регистрацией. sage@kamouniverse.com Опять было отказано. Охрана снята: повторная проверка теперь проходит без каких-либо условий после Прямая проверка промахов, для каждого корня, независимо от того, является ли собственный домен кандидата. Оказывается, один из них. Излишне, но безвредно для обычного случая (прямое проверка уже охватывает буквальный адрес корневого домена; несущая нагрузку всякий раз, когда домен Он имеет двойную регистрацию, как kamouniverse.com. - MAJOR: раунд 1 + tag fold (sage+urgent@kamocrm.com -> sage@kamocrm.com) Удалить полностью, а не просто «только таблицы почтовых ящиков», как было предложено ранее. Проверено в прямом эфире против фактического почтового стека в соответствии с собственной инструкцией обзора подтверждение против поведения Postfix/Dovecot: «recipient delimiter» комментируется в и postfix's main.cf и dovecot's 15-lda.conf, и virtual mailbox maps Virtual alias maps разрешают адрес RCPT TO буквальным образом «Где e-mail = «%s» / «Где источник = «%s» — нигде не разграничивайте», для Любой стол. Складка здесь удостоверила бы результат доставки адреса +tag'd, который Postfix по-прежнему 550 — ложная уверенность в обратном направлении от раунда 1. оригинальная ошибка, а не исправление, ограниченное достаточно, чтобы быть правильным. Это отклонение из буквального раунда 2 инструкция (которая предполагала, что некоторая таблица складывается), сделанная на живые доказательства, которые сама инструкция просила собрать; записано как постановление. - Минор: EmailAddress.parse() возвращает нуль (его локальная часть шарсета строже, чем Какое псевдоним/общий почтовый ящик/само создание почтового ящика) больше не применяется молча Отключает многокорневую повторную запись. Скриншоты из игры Substring-Before-the-last-@ Fallback Местная часть, так что повторный запуск все еще продолжается. Тесты: RecipientDomainValidatorTest переписан с помощью поддельного EntityManager (инспектирует текст SQL для маршрутизации собственного набора известных адресов таблицы, согласно обзору) «сделать тест двойным, чтобы отличить таблицы», так что тест теперь может утверждать, например, «известный только как» alias" и иметь в виду что-то. Новые/измененные случаи, подтвержденные RED немодифицированный раунд-1 RecipientDomainValidator.java (временно восстановленный через «git»); Хранилище только этого файла, а затем выскакивали обратно: корпус регрессии живой формы, два +tag-no-longer-folds case, alias-only +tag case и EmailAddress.parse()- Отклоняет случай — 5 неудач, именно в случаях этот раунд меняется. Все зеленое после. Тяжелый тест mvn **************** 80 пробежек, 0 неудач.
