通过Heroku Rails应用程序使用DNS和SMTP检查电子邮件验证

Pad*_*dhu 2 ruby email dns ruby-on-rails heroku

我正在考虑使用这个gem https://github.com/kamilc/email_verifier来验证电子邮件地址.

基本上这个gem将检查DNS中的MX记录并与smtp连接以检查电子邮件地址是否确实存在.有没有人有这类事情的经验请告诉我的顾虑.

从我的应用程序查询dns和smtp的次数太多会损害我的域名声誉吗?

我知道每天所有dynos的heroku开关ip addreses,对我的ssl应用程序也是如此吗?

Cal*_*ahl 7

是的,我有经验(从几年前开始)大规模地完成这项工作.我们正在扫描整个.SE域("我们"在这种情况下是.SE注册表),并尝试验证SOA记录中的地址.

我强烈建议你不要打扰SMTP部分.假阳性假阴性率将足够高,使您的结果毫无意义,您的服务器将很快被所有主要邮件服务提供商列入黑名单.

检查DNS部分是有道理的,并且运行良好.使用库凭借良好的信誉,检查电子邮件地址的语法(不要尝试自己编写,它的方式更加复杂的比你想象的),如果通过检查域看起来交付."看似可交付"意味着它具有可以解析为IP地址的MX记录,或者如果它没有任何MX记录,则它具有A和/或AAAA记录.

请勿尝试联系您找到的IP地址.这需要很多时间(相对来说),它什么也没告诉你.如果你可以连接,启动一个SMTP交易,另一端说"当然,我可以提供",你仍然不知道你测试的地址是否良好,因为现在大多数邮件服务器会说他们接受所有内容和然后默默地在地板上丢弃无效的消息.他们这样做,正是为了防止做你正在尝试做的(验证地址)正是垃圾邮件,所以不要指望这种行为改变,直到垃圾邮件发送者走开.如果服务器显示"Nope,现在无法提供,请稍后再试",它可能正在使用灰名单.所以你可以得到一个很好的答案 - 如果你在五到十分钟内再试一次.您可能不希望Ruby方法调用花费十分钟.最后,如果服务器说"不,不能提供,那么",你仍然不知道这是否意味着地址无效,如果服务器有一个糟糕的一天,并且地址可能开始在某些地方工作指出未来.

总而言之,如果你尝试进行SMTP连接以验证邮件地址,你将花费大量时间(在编写代码和运行代码时),你会惹恼很多人,得到一个很多黑名单(其中一些非常,非常非常渴望添加东西,而不是再把它们带走),最后你不会知道你在开始之前所做的事情.这真的不值得.