我们时不时会在邮件队列中看到一些拼写错误的域名,我一直在考虑使用我们的内部 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
我看不出你试图解决的问题。你想发送注册确认。但由于你无法向不存在的域发送注册确认,因此不会有注册。没关系。删除无法确认的用户并让他们再次注册。就是这样。这称为双重选择加入,是验证电子邮件地址的必需操作。
通常这些邮件甚至不应该在队列中:
- 如果域名不存在,邮件应立即退回(立即删除用户的时间)。
- 如果域名解析但到达不存在的用户,邮件将立即退回(删除该用户的时间)。
- 如果域名解析成功但服务器暂时推迟发送邮件,您就无法决定邮件是否会稍后送达或地址无效(需要等待选项 2 或 4)
- 如果域名解析且用户有效,则邮件将立即送达(等待确认的时间,但邮件已超出队列)
答案3
我同意 ChrisF 关于误报的说法。最近我一直在处理从我们的 ERP 系统中提取的电子邮件地址,遇到了很多问题。举个例子,我们的主要 ISP 之一是 Optus。我记得,仅根据未退回的内容,他们的电子邮件域可以是以下任何一种
- optusnet.net
- optusnet.com
- optus.com
- optus.net.au
- optusnet.net.au
- optusnet.com
...可能还有其他我不知道的。
如果我看到一个无效的地址,但看起来应该是 Optus 地址,我是否只能猜测哪一个是正确的?毕竟,它可能是其中任何一个,也可能都不是。
答案4
我们的电子邮件验证功能会检查电子邮件地址的域名是否有 MX 记录。这有助于防止输入错误,并大幅减少垃圾邮件。