Текст после знака + в адресе электронной почты игнорируется при проверке уникальности

Шаги для воспроизведения

  1. Создайте новую учетную запись на https://community.drownedinsound.com.
  2. Используйте адрес электронной почты GMail с символом «+» в имени пользователя, например, jobloggs+discourse@gmail.com.
  3. Выйдите из системы.
  4. Создайте еще одну учетную запись, используя адрес электронной почты GMail с другим текстом после символа «+», например, jobloggs+discobot@gmail.com.

Ожидаемый результат
На ваш адрес электронной почты поступает запрос на регистрацию нового пользователя.

Фактический результат
Вы получаете письмо на адрес jobloggs+discourse@gmail.com с сообщением о том, что «Учетная запись уже существует».

Примечания
После регистрации новый адрес электронной почты не используется для уведомления о том, что учетная запись уже существует. Раньше Discourse не вел себя подобным образом; например, до 6 января на этом сайте такого никогда не случалось. С тех пор было проведено как минимум одно обновление сайта, и именно после этого была внедрена эта ошибка.

Это может быть связано с ошибкой HTTP/500, которую мы получаем в нашем Discourse при использовании знака «+» в адресах электронной почты, в зависимости от состояния настройки normalize_emails:

Спасибо, вы правы: проблема была в изменении параметра normalize_emails при обновлении, а также в ошибке, возникающей, когда normalize_emails включён, а у вас уже есть учётные записи с использованием знака «+» в адресах.

Я думаю, что эта настройка также является причиной фатальной ошибки 500, которую получают наши пользователи при попытке изменить свой адрес электронной почты на адрес со знаком +.

Возможно, её не следует включать, если такие аккаунты уже существуют.