修复用户输入的电子邮件地址中的拼写错误

修复用户输入的电子邮件地址中的拼写错误

我们时不时会在邮件队列中看到一些拼写错误的域名,我一直在考虑使用我们的内部 DNS 服务器来纠正这些人的错误。

当前邮件队列中的一些示例:

g-mail.com
hotail.com
hotmai.com
hotmaiil.com
hotmal.com
htomail.com
rediffmai.com
yahii.com

上述域名没有 MX 记录,但很容易看出用户输入时的意思。

有问题的电子邮件通常是注册确认电子邮件,因此用户无法登录并修复自己的电子邮件地址,并且运行在数据库中修复该地址的 cron 作业不会再次发送确认电子邮件。

设置我们的内部 DNS 以将这些 MX 查找解析为正确的 Hotmail、Gmail 或 Yahoo(或任何其他)地址,最有可能导致邮件最终进入正确的收件箱。cron 作业还可以更正数据库中的电子邮件地址。

最好的解决方案是在 Web 服务器上的注册/电子邮件验证码中进行 MX 查找,这样我们就可以在用户仍在网站上时向用户发送错误消息,但我是系统管理员,我无法获得开发时间批准。

有人看到使用 DNS 重定向拼写错误的电子邮件存在任何潜在问题吗?

更新:

我想到了一个可能会破坏整个想法的问题。假设我们确实使用 DNS 更正了拼写错误的域名,当我们连接到目标邮件服务器时,我们将(在某个时候)说:

收件箱:<[电子邮件保护]>

Hotmail 服务器可能会拒绝它,因为他们不接受 hotmal.com 的电子邮件,他们也不为我转发邮件。问题是我们还没有修复地址。我们所做的只是将我们的 MTA 指向正确的服务器,就好像我们有正确的地址一样。

我还发现此邮件列表存档它对域名拼写错误有不同的解决方案。它无法解决我让用户知道的问题,但它确实能很快地将邮件从我的邮件队列中取出。

答案1

最大的问题将是误报 - 即那些你更正到错误域名的拼写错误。

使用一个可能不会发生的拼写错误,你可能会得到:

gotmail.com

你把它改成

hotmail.com

或者

gmail.com

用户可能有以下意思。

更简单的方法是将这些“域名无法识别”消息退回给用户,让他们进行更正。

答案2

我看不出你试图解决的问题。你想发送注册确认。但由于你无法向不存在的域发送注册确认,因此不会有注册。没关系。删除无法确认的用户并让他们再次注册。就是这样。这称为双重选择加入,是验证电子邮件地址的必需操作。

通常这些邮件甚至不应该在队列中:

  1. 如果域名不存在,邮件应立即退回(立即删除用户的时间)。
  2. 如果域名解析但到达不存在的用户,邮件将立即退回(删除该用户的时间)。
  3. 如果域名解析成功但服务器暂时推迟发送邮件,您就无法决定邮件是否会稍后送达或地址无效(需要等待选项 2 或 4)
  4. 如果域名解析且用户有效,则邮件将立即送达(等待确认的时间,但邮件已超出队列)

答案3

我同意 ChrisF 关于误报的说法。最近我一直在处理从我们的 ERP 系统中提取的电子邮件地址,遇到了很多问题。举个例子,我们的主要 ISP 之一是 Optus。我记得,仅根据未退回的内容,他们的电子邮件域可以是以下任何一种

  • optusnet.net
  • optusnet.com
  • optus.com
  • optus.net.au
  • optusnet.net.au
  • optusnet.com

...可能还有其他我不知道的。

如果我看到一个无效的地址,但看起来应该是 Optus 地址,我是否只能猜测哪一个是正确的?毕竟,它可能是其中任何一个,也可能都不是。

答案4

我们的电子邮件验证功能会检查电子邮件地址的域名是否有 MX 记录。这有助于防止输入错误,并大幅减少垃圾邮件。

相关内容