您好,有很多字符可以用于电子邮件地址。 现在的人们会将一些关键词拆分在他们的电子邮件地址中以提高可读性,例如:
name.surname@gmail.com
x-com.shop.support@stuff.net
然而,在使用 Gmail 时,点号(
.
)和大写字母只是为了更易读,并不被视为电子邮件地址的一部分。因此,我们可以说:
name.surname@gmail.com
和 namesurname@gmail.com
是相同的。
x-com.shop.support@stuff.net
和 x-comshopsupport@stuff.net
是相同的。问题:
大多数网站使用基于数据库的身份验证。假设我注册了一个没有点的电子邮件地址
namesurname@gmail.com
,那么这个 MySQL 查询将无法正常工作,因为字符串不同:
SELECT * FROM users WHERE email = "name.surname@gmail.com" ;
问题是:有没有办法解决这种问题?实际上,不同的电子邮件服务器使用不同的规则。所以,用户必须始终记住在哪个网站上使用了点或大写字母,即使电子邮件地址仍然相同吗?更新:
想象一下,有一些服务,您可以使用相同的电子邮件地址创建许多帐户。
原始电子邮件是
namesurname@gmail.com
,别名:name.surname@gmail.com
n.amesur.name@gmail.com
nam.esurname@gmail.com
而且你仍然会收到同一地址的电子邮件确认。听起来很奇怪,是吧?
foo.bar
是否被视为与foobar
相同的地址,没有这样的通用规定。 - decezepostmaster
外,大多数MTA都配置为忽略"local part"的大小写敏感性,但这绝对不是必需的。实际上,RFC5321明确规定:"邮箱的本地部分必须被视为大小写敏感。" - Sylvain Leroux