处理电子邮件中的拼写错误或注册用户

GJ.*_*GJ. 3 email spell-checking email-validation

我有一个网络应用程序,访问者正在注册并收到他们注册的电子邮件的简报.

我在注册表单中只使用了一个电子邮件字段,因为我希望减少字段数量,我想大多数人(像我一样)复制并粘贴电子邮件,这意味着拼写错误会传播到辅助验证字段.

我的问题是,相当一部分注册在电子邮件地址中有拼写错误,例如@yhaoo,@ hotmaill等.

我怎样才能有效地处理这样的错别字?

我想通过使用普通域的拼写错误列表来进行简单的自动更正,但我不能为此做一个现成的综合列表.

dri*_*iis 5

发布表单后,您可以执行DNS查找以查看是否存在该域的MX记录.如果没有,你几乎可以肯定这是一个错字,因为发送到该地址不会被送达.然后,您可以使用友好的错误消息重新显示表单,要求用户确认电子邮件地址是否正确.

在不提示用户的情况下不要自动更正.要做到这一点非常困难,最终可能会出现混淆用户,他们的电子邮件地址位于与其他域非常相似的域中.


GJ.*_*GJ. 0

首先,您应该首先进行 DNS 查找,查看该域是否有有效的 MX 记录(这意味着该域应该存在) - 如果没有,您就不应该接受该电子邮件。

其次,查找从该域到另一个域的 http 重定向。例如 yayoo.com 和 yahoo.com 都重定向到 yahoo.com,因此您可能需要显示一条警告消息“您的意思是 ...@yahoo.com 吗?” 甚至自动更正白名单中您已确定可以安全更正的地址。

最后,如果有有效的 MX 记录并且没有重定向,那么剩下的罪魁祸首很可能只是打字错误,这些打字错误会导致大型提供商(或无辜的其他服务)(例如 gmial.com)利用打字错误进行攻击。对于这些,您可以手动构建自动更正建议的哈希表(再次,在接受提交之前向用户提供“您的意思是……”步骤。