4

我有一个网络应用程序,访问者在该应用程序上注册并获得他们注册的电子邮件的时事通讯。

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

我的问题是,相当比例的注册用户在电子邮件地址中有拼写错误,例如@yhaoo、@hotmaill 等。

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

我正在考虑通过使用常见域的拼写错误列表来进行简单的自动更正,但我无法为此提供现成的综合列表。

4

4 回答 4

5

发布表单后,您可以进行 DNS 查找以查看该域是否有 MX 记录。如果没有,您几乎可以肯定这是一个拼写错误,因为发送到该地址将无法送达。然后您可以重新显示带有友好错误消息的表单,要求用户确认电子邮件地址是否正确。

不要在没有提示用户的情况下自动更正。很难做到正确,并且您最终可能会遇到困惑的用户,他们的电子邮件地址位于与另一个域非常相似的域中。

于 2010-06-26T19:14:55.080 回答
1

我也有同样的问题,我刚刚在http://getmailcheck.org找到了一个免费的 javascript 库,我认为它可以解决我们的问题:

Javascript 库和 jQuery 插件,当您的用户在电子邮件地址中拼错时建议正确的域。

当您的用户输入“user@gmil.con”时,Mailcheck 会建议“user@gmail.com”。

Mailcheck 也会为二级和顶级域提供建议。例如,当用户输入“user@hotmail.cmo”时,会提示“hotmail.com”。

同样,如果只有二级域拼写错误,它将独立于顶级域进行更正。

据说 Dropbox、Lyft、Kickstarter、Khan Academy 等都在使用它。

于 2017-04-22T18:55:58.973 回答
0

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

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

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

于 2010-06-26T20:37:50.870 回答
0

我知道这个问题很老了。但也许我的回答会对某人有所帮助。我正在使用Mailgun API来处理电子邮件地址中的拼写错误。

于 2015-03-22T09:06:57.850 回答