在节点js中测试catchAll电子邮件的域

时间:2015-05-26 13:00:19

标签: node.js email dns sendmail telnet

我正在尝试以编程方式测试某个域是否捕获了托管所有电子邮件地址。我想知道一个特定的域名 - 即。 facebook.com - 将收到发送至blahblah@facebook.com的电子邮件。

我目前正在使用节点DNS来查看域是否首先有Mx记录,然后我发送ping到电子邮件,不幸的是这非常慢,我想知道是否有更快的方法来检测这个。

validateDomain: function(domain, array, i, callback) {
    var testEmail = '1qaz2wsx3edc4rfv5tgb@' + domain;
    checkEmail(testEmail, function(validation, addresses, err) {
        if (validation) {
            callback( err, false, array, i);
        } else {
            array.push(domain);
            callback( null, true, array, i);
        }
    });
}

这就是我目前通过使用非常不可能的电子邮件来验证捕获的方式。函数checkEmail使用Mx记录来查看域是否有电子邮件并发送ping。这是我想要替换以检测全部捕获的函数。

谢谢,

2 个答案:

答案 0 :(得分:8)

据我所知,Catch-all电子邮件捕获程序未在DNS中实现,它们是在电子邮件服务器级别配置的。因此除了检查电子邮件地址的有效性之外,没有其他方法可以进行测试。

请注意,您无需实际发送电子邮件进行测试。例如,一个SMTP会话,RCPT TO命令返回:成功时为200或250,转发时为251或551,252无法验证但将接受,450或550邮箱不可用,552超出存储,553邮箱名称不允许。在确定是否存在通配符后,您将发送退出。

答案 1 :(得分:0)

smtp-protocol包具有验证用户名方法。