Можно ли ввести email больше 254 символов в поле 'кому'?
Что проверяют
Знаете ли вы, откуда берётся число 254, и умеете ли превратить ограничение стандарта в граничные тесты. Второй слой вопроса: поле «Кому» принимает несколько адресов, и это нужно заметить. Следом обычно просят перечислить конкретные проверки.
Как отвечать
Сначала факты. По RFC 5321 локальная часть до @ ограничена 64 октетами, домен 255, а весь путь в SMTP 256 октетами вместе с угловыми скобками. Отсюда практический максимум адреса: 254 символа. Метка домена между точками не длиннее 63. Цифра 320 из старых статей и RFC 3696 ошибочна, её исправили в errata.
Дальше разделите «ввести» и «принять». Набрать можно что угодно, если у поля нет maxlength: input type="email" длину сам не ограничивает. Важно, что сделает система. Проверки:
- граница адреса: 254 символа проходит, 255 отклоняется с понятным текстом ошибки;
- границы частей: локальная часть 64 и 65, метка домена 63 и 64;
- несколько получателей: строка «Кому» длиннее 254 из коротких адресов должна приниматься, лимит считается на адрес. Отдельно проверить лимит числа получателей;
- обход интерфейса: тот же запрос через API в Postman или curl, чтобы убедиться, что проверка есть на сервере;
- байты против символов: лимиты заданы в октетах, а кириллица в UTF-8 занимает два байта, так что с интернациональным адресом граница наступит раньше.
Ожидаемый результат берётся из требований, а стандарт служит аргументом, если требований нет.
Где спотыкаются
Отвечают «нет, нельзя» и не предлагают ни одного теста. Вопрос про тест-дизайн, а не про знание числа.
Путают длину адреса с длиной поля. Если «Кому» режется на 254 символах целиком, это баг: пользователь не отправит письмо сразу нескольким коллегам.
Проверяют только интерфейс. Клиентская валидация обходится за минуту, и адрес на 300 символов уходит в базу, где падает на ограничении колонки или ломает отправку.