电子邮件地址中+之后的文本在唯一性检查中被忽略

重现步骤

  1. https://community.drownedinsound.com 上创建一个新帐户。
  2. 使用带有 + 字符的 GMail 电子邮件,例如 jobloggs+discourse@gmail.com
  3. 登出。
  4. 使用带有不同 + 符号后文本的 GMail 电子邮件创建另一个帐户,例如 jobloggs+discobot@gmail.com

预期结果
您的电子邮件会收到一封新用户注册请求。

实际结果
您会收到一封发送到 jobloggs+discourse@gmail.com 的电子邮件,称“该帐户已存在”。

备注
注册后,新电子邮件不会用于通知帐户已存在。Discourse 以前的行为并非如此,例如,在 1 月 6 日之前,此网站从未发生过这种情况。此后至少进行了一次网站升级,并且自那以后,引入了这个错误。

1 个赞

这可能与我们在 Discourse 中使用 normalize_emails 设置的状态时,在电子邮件地址中使用加号(+)而遇到的 HTTP/500 错误有关:

2 个赞

谢谢你的反馈,你说得对,升级期间normalize_emails设置被更改了,而且当normalize_emails已设置且你已经有使用+号的电子邮件账户时,就会出现一个 bug。

1 个赞

我认为此设置也是导致用户在尝试将其电子邮件地址更改为包含加号的地址时收到 500 致命错误的原因。

也许如果已存在此类帐户,则不应启用此设置。